Преглед на файлове

Array dimension 0 means variable length (#782)

Stefan Profanter преди 8 години
родител
ревизия
997c244bb4
променени са 1 файла, в които са добавени 2 реда и са изтрити 1 реда
  1. 2 1
      src/server/ua_services_call.c

+ 2 - 1
src/server/ua_services_call.c

@@ -92,7 +92,8 @@ satisfySignature(UA_Server *server, const UA_Variant *var, const UA_Argument *ar
         if(arg->arrayDimensionsSize != varDimsSize)
             return UA_STATUSCODE_BADINVALIDARGUMENT;
         for(size_t i = 0; i < varDimsSize; i++) {
-            if((UA_Int32)arg->arrayDimensions[i] != varDims[i])
+            // A value of 0 for an individual dimension indicates that the dimension has a variable	length.
+            if((UA_Int32)arg->arrayDimensions[i]!=0 && (UA_Int32)arg->arrayDimensions[i] != varDims[i])
                 return UA_STATUSCODE_BADINVALIDARGUMENT;
         }
     }