Browse Source

finxing a coverity problem

Stasik0 10 years ago
parent
commit
6172267fa5
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/ua_types_encoding_binary.c

+ 3 - 1
src/ua_types_encoding_binary.c

@@ -316,13 +316,15 @@ static UA_StatusCode UA_NodeId_encodeBinary_nodeid_offset(UA_NodeId const *src,
     // temporary variables for endian-save code
     UA_Byte srcByte;
     UA_UInt16 srcUInt16;
+    UA_UInt32 srcUInt32;
     switch(src->identifierType) {
     case UA_NODEIDTYPE_NUMERIC:
         if(src->identifier.numeric+nodeid_offset > UA_UINT16_MAX || src->namespaceIndex > UA_BYTE_MAX) {
             srcByte = UA_NODEIDTYPE_NUMERIC;
             retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
             retval |= UA_UInt16_encodeBinary(&src->namespaceIndex, dst, offset);
-            retval |= UA_UInt32_encodeBinary(&src->identifier.numeric+nodeid_offset, dst, offset);
+            srcUInt32 = src->identifier.numeric+nodeid_offset;
+            retval |= UA_UInt32_encodeBinary(&srcUInt32, dst, offset);
         } else if(src->identifier.numeric+nodeid_offset > UA_BYTE_MAX || src->namespaceIndex > 0) { /* UA_NODEIDTYPE_FOURBYTE */
             srcByte = UA_NODEIDTYPE_FOURBYTE;
             retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);