소스 검색

allow 0-length arguments when -1 length is defined

Julius Pfrommer 9 년 전
부모
커밋
d892175208
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      src/server/ua_services_call.c

+ 4 - 2
src/server/ua_services_call.c

@@ -79,9 +79,11 @@ argConformsToDefinition(UA_CallMethodRequest *rs, const UA_VariableNode *argDefi
     if(argDefinition->value.variant.value.type != &UA_TYPES[UA_TYPES_ARGUMENT] &&
         argDefinition->value.variant.value.type != &UA_TYPES[UA_TYPES_EXTENSIONOBJECT])
         return UA_STATUSCODE_BADINTERNALERROR;
-    if(rs->inputArgumentsSize < argDefinition->value.variant.value.arrayLength)
+    if(rs->inputArgumentsSize < argDefinition->value.variant.value.arrayLength &&
+       argDefinition->value.variant.value.arrayLength > 0)
         return UA_STATUSCODE_BADARGUMENTSMISSING;
-    if(rs->inputArgumentsSize > argDefinition->value.variant.value.arrayLength)
+    if(rs->inputArgumentsSize > 0 &&
+       rs->inputArgumentsSize > argDefinition->value.variant.value.arrayLength)
         return UA_STATUSCODE_BADINVALIDARGUMENT;
     
     const UA_ExtensionObject *thisArgDefExtObj;