[libvirt] [PATCH 6/n] libvirtd: avoid memory leak on shutdown
Matthias Bolte
matthias.bolte at googlemail.com
Wed Dec 1 16:57:03 UTC 2010
2010/11/30 Eric Blake <eblake at redhat.com>:
> * daemon/libvirtd.c (qemudRunLoop): Free any remaining client data.
> ---
>
> Since qemudCleanup calls VIR_FREE(server), it only makes sense to
> first free all of server's contents.
>
> Probably not the most important leak to plug (it only triggers at
> libvirtd exit, where the memory would be abandoned by process exit
> anyways, and does not affect clients that link against libvirt as
> a library), but plugging it makes leak analysis of the rest of
> libvirtd easier.
>
> daemon/libvirtd.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> index caf51bf..791b3dc 100644
> --- a/daemon/libvirtd.c
> +++ b/daemon/libvirtd.c
> @@ -2403,6 +2403,10 @@ cleanup:
> server->workers[i].hasThread = 0;
> }
> VIR_FREE(server->workers);
> + for (i = 0; i < server->nclients; i++)
> + qemudFreeClient(server->clients[i]);
> + server->nclients = 0;
> + VIR_SHRINK_N(server->clients, server->nclients_max, server->nclients_max);
>
> virMutexUnlock(&server->lock);
> return NULL;
> --
> 1.7.3.2
>
ACK.
Matthias
More information about the libvir-list
mailing list