[libvirt] [PATCH] Fix memory leak issues in virshAllocpagesPagesizeCompleter.
Michal Privoznik
mprivozn at redhat.com
Wed May 23 13:30:53 UTC 2018
On 05/23/2018 02:40 PM, Roland Schulz wrote:
> Signed-off-by: Roland Schulz <schullzroll at gmail.com>
> ---
> tools/virsh-completer.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/virsh-completer.c b/tools/virsh-completer.c
> index 1435d1d4c..c72f3bcad 100644
> --- a/tools/virsh-completer.c
> +++ b/tools/virsh-completer.c
> @@ -576,6 +576,7 @@ virshAllocpagesPagesizeCompleter(vshControl *ctl,
> virshControlPtr priv = ctl->privData;
> unsigned int npages = 0;
> xmlNodePtr *pages = NULL;
> + xmlDocPtr doc = NULL;
> double size = 0;
> size_t i = 0;
> const char *suffix = NULL;
> @@ -595,7 +596,7 @@ virshAllocpagesPagesizeCompleter(vshControl *ctl,
> if (!(cap_xml = virConnectGetCapabilities(priv->conn)))
> goto error;
>
> - if (!(virXMLParseStringCtxt(cap_xml, _("capabilities"), &ctxt)))
> + if ((doc = virXMLParseStringCtxt(cap_xml, _("capabilities"), &ctxt)) == NULL)
> goto error;
You can keep the !ptr comparison just like @cap_xml is tested a few
lines above.
>
> if (cellno && vshCommandOptStringQuiet(ctl, cmd, "cellno", &cellnum) > 0) {
> @@ -631,12 +632,11 @@ virshAllocpagesPagesizeCompleter(vshControl *ctl,
>
> cleanup:
> xmlXPathFreeContext(ctxt);
> - for (i = 0; i < npages; i++)
> - VIR_FREE(pages[i]);
> VIR_FREE(pages);
> - VIR_FREE(cap_xml);
> + xmlFreeDoc(doc);
> VIR_FREE(path);
> VIR_FREE(pagesize);
> + VIR_FREE(cap_xml);
> VIR_FREE(unit);
>
> return ret;
>
ACKed and pushed. Thank you for addressing all the points I raised.
Michal
More information about the libvir-list
mailing list