Explorar o código

Attempt to fix crash in read response

In some cases when server was rebooted during read, the callback
would access NULL results.

This fixes the crash, but doesn't call the registered application
callback in case results is empty.
Jaakko Laurikainen %!s(int64=6) %!d(string=hai) anos
pai
achega
7b777465dc
Modificáronse 1 ficheiros con 5 adicións e 0 borrados
  1. 5 0
      src/client/ua_client_highlevel.c

+ 5 - 0
src/client/ua_client_highlevel.c

@@ -478,6 +478,11 @@ void ValueAttributeRead(UA_Client *client, void *userdata, UA_UInt32 requestId,
         return;
 
     UA_ReadResponse rr = *(UA_ReadResponse *) response;
+    if ((rr.resultsSize == 0) || (rr.results == NULL))
+    {
+        return;
+    }
+
     if (rr.results[0].status != UA_STATUSCODE_GOOD)
         UA_ReadResponse_deleteMembers((UA_ReadResponse*) response);