On 11/30/2011 02:26 PM, Wen Congyang wrote:
Yeah, it's a inappropriate place, in addition, in 'cleanup' label, if ret !=1, also will free 'all', then 'unlock' label still do this, the following should be a right place:At 11/30/2011 01:57 PM, ajia@xxxxxxxxxx Write:From: Alex Jia <ajia@xxxxxxxxxx> Detected by Coverity. Leak introduced in commit 673adba. Signed-off-by: Alex Jia <ajia@xxxxxxxxxx> --- src/rpc/virnetclient.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index a738129..9ed03a5 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -1740,6 +1740,7 @@ cleanup: unlock: virNetClientUnlock(client); + VIR_FREE(call);According to the comment: /* If partially sent, then the call is still on the dispatch queue */ So I think we should not free call if it is still on the queue. 1708 if (!client->sock || client->wantClose) { 1709 virNetError(VIR_ERR_INTERNAL_ERROR, "%s", 1710 _("client socket is closed")); 1711 VIR_FREE(call); 1712 goto unlock; 1713 } Thanks, Alex Thanks Wen Congyangreturn ret; } |
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list