Pārlūkot izejas kodu

allow 0-length arguments when -1 length is defined

Julius Pfrommer 9 gadi atpakaļ
vecāks
revīzija
d892175208
1 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  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;