Browse Source

more hardening

Stasik0 10 years ago
parent
commit
1340e1495f
2 changed files with 4 additions and 1 deletions
  1. 1 1
      examples/networklayer_tcp.c
  2. 3 0
      src/client/ua_client.c

+ 1 - 1
examples/networklayer_tcp.c

@@ -611,7 +611,7 @@ static UA_StatusCode ClientNetworkLayerTCP_awaitResponse(ClientNetworkLayerTCP *
     	//let us try to decode the length of the real message
     	UA_SecureConversationMessageHeader_decodeBinary(response, &offset, &msgHeader);
     	printf("ret %d, length %d, already recv %d\n", ret, msgHeader.messageHeader.messageSize, already_received);
-    }while(msgHeader.messageHeader.messageSize < already_received);
+    }while(msgHeader.messageHeader.messageSize == 0 || msgHeader.messageHeader.messageSize < already_received);
 
     response->length = already_received;
 

+ 3 - 0
src/client/ua_client.c

@@ -214,6 +214,9 @@ static void sendReceiveRequest(UA_RequestHeader *request, const UA_DataType *req
                                void *response, const UA_DataType *responseType, UA_Client *client,
                                UA_Boolean sendOnly)
 {
+	if(response)
+		UA_init(response, responseType);
+
     UA_NodeId_copy(&client->authenticationToken, &request->authenticationToken);
 
     UA_SecureConversationMessageHeader msgHeader;