Explorar o código

Fixed SEGFAULT if Client_Call is passed a null pointer for return arguments...

ichrispa %!s(int64=9) %!d(string=hai) anos
pai
achega
4986b9ac3e
Modificáronse 1 ficheiros con 4 adicións e 2 borrados
  1. 4 2
      src/client/ua_client_highlevel.c

+ 4 - 2
src/client/ua_client_highlevel.c

@@ -236,8 +236,10 @@ UA_Client_call(UA_Client *client, const UA_NodeId objectId, const UA_NodeId meth
     }
     }
     retval = response.results[0].statusCode;
     retval = response.results[0].statusCode;
     if(retval == UA_STATUSCODE_GOOD && response.resultsSize > 0) {
     if(retval == UA_STATUSCODE_GOOD && response.resultsSize > 0) {
-        *output = response.results[0].outputArguments;
-        *outputSize = response.results[0].outputArgumentsSize;
+        if (output != NULL && outputSize != NULL) {
+          *output = response.results[0].outputArguments;
+          *outputSize = response.results[0].outputArgumentsSize;
+        }
         response.results[0].outputArguments = NULL;
         response.results[0].outputArguments = NULL;
         response.results[0].outputArgumentsSize = 0;
         response.results[0].outputArgumentsSize = 0;
     }
     }