Browse Source

Array dimension 0 means variable length (#782)

Stefan Profanter 8 years ago
parent
commit
997c244bb4
1 changed files with 2 additions and 1 deletions
  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;
         }
     }