[libvirt] [PATCH 1/3] maint: treat more libxml2 functions as free-like

Daniel Veillard veillard at redhat.com
Fri Aug 19 08:44:30 UTC 2011


On Thu, Aug 18, 2011 at 03:40:47PM -0600, Eric Blake wrote:
> * cfg.mk (useless_free_options): Add xmlFreeDoc, xmlBufferFree.
> * src/esx/esx_vi.c (ESX_VI__TEMPLATE__FREE): Fix offenders.
> * tools/virsh.c (cmdFreecell, cmdVNCDisplay, cmdTTYConsole)
> (cmdDetachInterface, cmdDetachDisk, cmdSnapshotCreate)
> (cmdSnapshotCreateAs, cmdSnapshotList, cmdSnapshotParent):
> Likewise.
> ---
>  cfg.mk           |    2 ++
>  src/esx/esx_vi.c |    4 +---
>  tools/virsh.c    |   36 ++++++++++++------------------------
>  3 files changed, 15 insertions(+), 27 deletions(-)
> 
> diff --git a/cfg.mk b/cfg.mk
> index 2eb73e6..9f1f6c5 100644
> --- a/cfg.mk
> +++ b/cfg.mk
> @@ -165,7 +165,9 @@ useless_free_options =				\
>    --name=virStoragePoolSourceFree		\
>    --name=virStorageVolDefFree			\
>    --name=virThreadPoolFree			\
> +  --name=xmlBufferFree				\
>    --name=xmlFree				\
> +  --name=xmlFreeDoc				\
>    --name=xmlXPathFreeContext			\
>    --name=xmlXPathFreeObject
> 
> diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
> index 64e5b73..c82094b 100644
> --- a/src/esx/esx_vi.c
> +++ b/src/esx/esx_vi.c
> @@ -1074,9 +1074,7 @@ ESX_VI__TEMPLATE__FREE(Response,
>  {
>      VIR_FREE(item->content);
> 
> -    if (item->document != NULL) {
> -        xmlFreeDoc(item->document);
> -    }
> +    xmlFreeDoc(item->document);
>  })
> 
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index f1eb4ca..c43de4c 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -2971,8 +2971,7 @@ cmdFreecell(vshControl *ctl, const vshCmd *cmd)
> 
>  cleanup:
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      VIR_FREE(nodes);
>      VIR_FREE(nodes_free);
>      VIR_FREE(nodes_id);
> @@ -10234,8 +10233,7 @@ cmdVNCDisplay(vshControl *ctl, const vshCmd *cmd)
>   cleanup:
>      xmlXPathFreeObject(obj);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      virDomainFree(dom);
>      return ret;
>  }
> @@ -10295,8 +10293,7 @@ cmdTTYConsole(vshControl *ctl, const vshCmd *cmd)
>   cleanup:
>      xmlXPathFreeObject(obj);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      virDomainFree(dom);
>      return ret;
>  }
> @@ -10752,10 +10749,8 @@ cmdDetachInterface(vshControl *ctl, const vshCmd *cmd)
>          virDomainFree(dom);
>      xmlXPathFreeObject(obj);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> -    if (xml_buf)
> -        xmlBufferFree(xml_buf);
> +    xmlFreeDoc(xml);
> +    xmlBufferFree(xml_buf);
>      return functionReturn;
>  }
> 
> @@ -11216,10 +11211,8 @@ cmdDetachDisk(vshControl *ctl, const vshCmd *cmd)
>   cleanup:
>      xmlXPathFreeObject(obj);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> -    if (xml_buf)
> -        xmlBufferFree(xml_buf);
> +    xmlFreeDoc(xml);
> +    xmlBufferFree(xml_buf);
>      if (dom)
>          virDomainFree(dom);
>      return functionReturn;
> @@ -11898,8 +11891,7 @@ cmdSnapshotCreate(vshControl *ctl, const vshCmd *cmd)
>  cleanup:
>      VIR_FREE(name);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      if (snapshot)
>          virDomainSnapshotFree(snapshot);
>      VIR_FREE(doc);
> @@ -12005,8 +11997,7 @@ cmdSnapshotCreateAs(vshControl *ctl, const vshCmd *cmd)
>  cleanup:
>      VIR_FREE(parsed_name);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      if (snapshot)
>          virDomainSnapshotFree(snapshot);
>      VIR_FREE(doc);
> @@ -12163,8 +12154,7 @@ cmdSnapshotList(vshControl *ctl, const vshCmd *cmd)
>              if (snapshot)
>                  virDomainSnapshotFree(snapshot);
>              xmlXPathFreeContext(ctxt);
> -            if (xml)
> -                xmlFreeDoc(xml);
> +            xmlFreeDoc(xml);
>              VIR_FREE(doc);
> 
>              snapshot = virDomainSnapshotLookupByName(dom, names[i], 0);
> @@ -12210,8 +12200,7 @@ cleanup:
>      if (snapshot)
>          virDomainSnapshotFree(snapshot);
>      xmlXPathFreeContext(ctxt);
> -    if (xml)
> -        xmlFreeDoc(xml);
> +    xmlFreeDoc(xml);
>      VIR_FREE(doc);
>      for (i = 0; i < actual; i++)
>          VIR_FREE(names[i]);
> @@ -12343,8 +12332,7 @@ cmdSnapshotParent(vshControl *ctl, const vshCmd *cmd)
>  cleanup:
>      VIR_FREE(parent);
>      xmlXPathFreeContext(ctxt);
> -    if (xmldoc)
> -        xmlFreeDoc(xmldoc);
> +    xmlFreeDoc(xmldoc);
>      VIR_FREE(xml);
>      if (snapshot)
>          virDomainSnapshotFree(snapshot);

  ACK, the libxml2 entry points check for NULL,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list