Explorar o código

Fix undefined behavior in historydatabse (memcpy called with null)

Mark Giraud %!s(int64=6) %!d(string=hai) anos
pai
achega
b0b34ccbf3
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      plugins/historydata/ua_historydatabase_default.c

+ 2 - 1
plugins/historydata/ua_historydatabase_default.c

@@ -283,7 +283,8 @@ getHistoryData_service_default(const UA_HistoryDataBackend* backend,
             return UA_STATUSCODE_BADOUTOFMEMORY;
         }
         *((size_t*)(outContinuationPoint->data)) = skip + *resultSize;
-        memcpy(outContinuationPoint->data + sizeof(size_t), backendOutContinuationPoint.data, backendOutContinuationPoint.length);
+        if(backendOutContinuationPoint.length > 0)
+            memcpy(outContinuationPoint->data + sizeof(size_t), backendOutContinuationPoint.data, backendOutContinuationPoint.length);
     }
     UA_ByteString_deleteMembers(&backendOutContinuationPoint);
     return UA_STATUSCODE_GOOD;