浏览代码

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;