Re: [PATCH 5/6] conf: fix memleak in virDomainNetIpParseXML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 27, 2015 at 02:41:44PM +0800, Zhang Bo wrote:
> use cleanup instead of error, so that the allocated strings could also get freed
> when there's no error.
> 
> Signed-off-by: Zhang Bo <oscar.zhangbo@xxxxxxxxxx>
> ---
>  src/conf/domain_conf.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 41963cc..8350fe7 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -5129,6 +5129,7 @@ virDomainNetIpParseXML(xmlNodePtr node)
>      char *familyStr = NULL;
>      int family = AF_UNSPEC;
>      char *address = NULL;
> +    int ret = -1;

The 'ret' variable should contain the return value of the function.

I am squashing this in:

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b2640b0..1b520b9 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5124,13 +5124,12 @@ static virDomainNetIpDefPtr
 virDomainNetIpParseXML(xmlNodePtr node)
 {
     /* Parse the prefix in every case */
-    virDomainNetIpDefPtr ip = NULL;
+    virDomainNetIpDefPtr ip = NULL, ret = NULL;
     char *prefixStr = NULL;
     unsigned int prefixValue = 0;
     char *familyStr = NULL;
     int family = AF_UNSPEC;
     char *address = NULL;
-    int ret = -1;
 
     if (!(prefixStr = virXMLPropString(node, "prefix")) ||
         (virStrToLong_ui(prefixStr, NULL, 10, &prefixValue) < 0)) {
@@ -5163,15 +5162,15 @@ virDomainNetIpParseXML(xmlNodePtr node)
     }
     ip->prefix = prefixValue;
 
-    ret = 0;
+    ret = ip;
+    ip = NULL;
 
  cleanup:
     VIR_FREE(prefixStr);
     VIR_FREE(familyStr);
     VIR_FREE(address);
-    if (ret)
-        VIR_FREE(ip);
-    return ip;
+    VIR_FREE(ip);
+    return ret;
 }
 

Jan

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]