mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
client: fix memory leak in client msg
When closing client->waitDispatch in virNetClientIOEventLoopRemoveAll or virNetClientIOEventLoopRemoveDone, VIR_FREE() is called to free call->msg directly, resulting in leak of the memory call->msg->buffer points to. Use virNetMessageFree(call->msg) instead of VIR_FREE(call->msg). Signed-off-by: Hao Wang <wanghao232@huawei.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
c43622f06e
commit
0011ec3191
@ -1523,7 +1523,7 @@ static bool virNetClientIOEventLoopRemoveDone(virNetClientCallPtr call,
|
||||
if (call->expectReply)
|
||||
VIR_WARN("Got a call expecting a reply but without a waiting thread");
|
||||
virCondDestroy(&call->cond);
|
||||
VIR_FREE(call->msg);
|
||||
virNetMessageFree(call->msg);
|
||||
VIR_FREE(call);
|
||||
}
|
||||
|
||||
@ -1550,7 +1550,7 @@ virNetClientIOEventLoopRemoveAll(virNetClientCallPtr call,
|
||||
|
||||
VIR_DEBUG("Removing call %p", call);
|
||||
virCondDestroy(&call->cond);
|
||||
VIR_FREE(call->msg);
|
||||
virNetMessageFree(call->msg);
|
||||
VIR_FREE(call);
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user