From: Daniel P. Berrange Date: Fri, 8 Jul 2011 11:35:36 +0000 (+0100) Subject: Fix leak of 'msg' object in client stream code X-Git-Tag: v0.9.4-rc1~273 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=927dfcf693165f5b08efba0d031d4cc43e6f9c37;p=thirdparty%2Flibvirt.git Fix leak of 'msg' object in client stream code In one exit path we forgot to free the virNetMessage object causing a large memory leak for streams which send a lot of data. Some other paths were calling VIR_FREE directly instead of virNetMessageFree although this was (currently) harmless. * src/rpc/virnetclientstream.c: Fix leak of msg object * src/rpc/virnetclientprogram.c: Call virNetMessageFree instead of VIR_FREE --- diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c index 8414ad86e0..c39520abfd 100644 --- a/src/rpc/virnetclientprogram.c +++ b/src/rpc/virnetclientprogram.c @@ -329,11 +329,11 @@ int virNetClientProgramCall(virNetClientProgramPtr prog, goto error; } - VIR_FREE(msg); + virNetMessageFree(msg); return 0; error: - VIR_FREE(msg); + virNetMessageFree(msg); return -1; } diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c index d5efab12e5..fe15acdf61 100644 --- a/src/rpc/virnetclientstream.c +++ b/src/rpc/virnetclientstream.c @@ -361,11 +361,12 @@ int virNetClientStreamSendPacket(virNetClientStreamPtr st, if (virNetClientSend(client, msg, wantReply) < 0) goto error; + virNetMessageFree(msg); return nbytes; error: - VIR_FREE(msg); + virNetMessageFree(msg); return -1; }