瀏覽代碼

Fix #1041: Only perform compatibility checks if there is a value type set

value.hasValue only indicates, if the value member is initialized,
but not if the value is also set. Only if value.value.type is not NULL
there is a value.
Stefan Profanter 7 年之前
父節點
當前提交
c60f77773d
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/server/ua_services_attribute.c

+ 2 - 2
src/server/ua_services_attribute.c

@@ -335,7 +335,7 @@ writeArrayDimensionsAttribute(UA_Server *server, UA_Session *session,
     retval = readValueAttribute(server, session, node, &value);
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
-    if(value.hasValue) {
+    if(value.hasValue && value.value.type) {
         retval = compatibleArrayDimensions(arrayDimensionsSize, arrayDimensions,
                                            value.value.arrayDimensionsSize,
                                            value.value.arrayDimensions);
@@ -441,7 +441,7 @@ writeDataTypeAttribute(UA_Server *server, UA_Session *session,
     UA_StatusCode retval = readValueAttribute(server, session, node, &value);
     if(retval != UA_STATUSCODE_GOOD)
         return retval;
-    if(value.hasValue) {
+    if(value.hasValue && value.value.type) {
         retval = typeCheckValue(server, dataType, node->valueRank,
                                 node->arrayDimensionsSize, node->arrayDimensions,
                                 &value.value, NULL, NULL);