瀏覽代碼

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 6 年之前
父節點
當前提交
7b777465dc
共有 1 個文件被更改,包括 5 次插入0 次删除
  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);