From 927dfcf693165f5b08efba0d031d4cc43e6f9c37 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 8 Jul 2011 12:35:36 +0100 Subject: [PATCH] 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 --- src/rpc/virnetclientprogram.c | 4 ++-- src/rpc/virnetclientstream.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) 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; }