소스 검색

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;
         }
     }