]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Ensure RPC message is cleared before being reused
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 30 Jun 2011 11:26:54 +0000 (12:26 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 30 Jun 2011 17:04:01 +0000 (18:04 +0100)
To save on memory reallocation, virNetMessage instances that
have been transmitted, may be reused for a subsequent incoming
message. We forgot to clear out the old data of the message
fully, which caused later confusion upon read.

* src/rpc/virnetserverclient.c: memset entire message before
  reusing it

src/rpc/virnetserverclient.c

index aac4c3c3fe887bff7fc161964919de07b280adf4..5c23cf2410fe18524fb54f9c75e9f6eb009be0bf 100644 (file)
@@ -837,6 +837,7 @@ virNetServerClientDispatchWrite(virNetServerClientPtr client)
                     client->nrequests < client->nrequests_max) {
                     /* Ready to recv more messages */
                     client->rx = msg;
+                    memset(client->rx, 0, sizeof(*client->rx));
                     client->rx->bufferLength = VIR_NET_MESSAGE_LEN_MAX;
                     msg = NULL;
                     client->nrequests++;