Browse Source

fix: fix a potential issue uncovered by coverity

Julius Pfrommer 8 years ago
parent
commit
1a08af3568
1 changed files with 7 additions and 7 deletions
  1. 7 7
      src/server/ua_services_attribute.c

+ 7 - 7
src/server/ua_services_attribute.c

@@ -463,18 +463,18 @@ writeValueAttributeAfterTypeCheck(UA_VariableNode *node, const UA_DataValue *val
             if(!node->value.data.value.hasValue || !value->hasValue)
                 return UA_STATUSCODE_BADINDEXRANGEINVALID;
 
-            /* Make Scalar a one-entry array for range matching */
-            UA_DataValue editableValue;
+            /* Make scalar a one-entry array for range matching */
+            UA_Variant editableValue;
+            const UA_Variant *v = &value->value;
             if(UA_Variant_isScalar(&value->value)) {
-                editableValue = *value;
-                editableValue.value.arrayLength = 1;
-                value = &editableValue;
+                editableValue = value->value;
+                editableValue.arrayLength = 1;
+                v = &editableValue;
             }
                 
             /* Write the value */
             retval = UA_Variant_setRangeCopy(&node->value.data.value.value,
-                                             value->value.data, value->value.arrayLength,
-                                             *rangeptr);
+                                             v->data, v->arrayLength, *rangeptr);
             if(retval != UA_STATUSCODE_GOOD)
                 return retval;
         }