[libvirt] [RFC 2/4] add automatic cleanup support in src/util/virarptable.c

Sukrit Bhatnagar posted 4 patches 6 years, 11 months ago
[libvirt] [RFC 2/4] add automatic cleanup support in src/util/virarptable.c
Posted by Sukrit Bhatnagar 6 years, 11 months ago
Modifiy code to use cleanup macros where required.

Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
---
 src/util/virarptable.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/util/virarptable.c b/src/util/virarptable.c
index c0e90dc..f53a479 100644
--- a/src/util/virarptable.c
+++ b/src/util/virarptable.c
@@ -71,9 +71,8 @@ virArpTableGet(void)
 {
     int num = 0;
     int msglen;
-    void *nlData = NULL;
+    VIR_AUTOFREE(void *) nlData = NULL;
     virArpTablePtr table = NULL;
-    char *ipstr = NULL;
     struct nlmsghdr* nh;
     struct rtattr * tb[NDA_MAX+1];
 
@@ -89,6 +88,7 @@ virArpTableGet(void)
     VIR_WARNINGS_NO_CAST_ALIGN
     for (; NLMSG_OK(nh, msglen); nh = NLMSG_NEXT(nh, msglen)) {
         VIR_WARNINGS_RESET
+        VIR_AUTOFREE(char *) ipstr = NULL;
         struct ndmsg *r = NLMSG_DATA(nh);
         int len = nh->nlmsg_len;
         void *addr;
@@ -134,8 +134,6 @@ virArpTableGet(void)
 
             if (VIR_STRDUP(table->t[num].ipaddr, ipstr) < 0)
                 goto cleanup;
-
-            VIR_FREE(ipstr);
         }
 
         if (tb[NDA_LLADDR]) {
@@ -155,13 +153,10 @@ virArpTableGet(void)
     }
 
  end_of_netlink_messages:
-    VIR_FREE(nlData);
     return table;
 
  cleanup:
     virArpTableFree(table);
-    VIR_FREE(ipstr);
-    VIR_FREE(nlData);
     return NULL;
 }
 
-- 
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [RFC 2/4] add automatic cleanup support in src/util/virarptable.c
Posted by Erik Skultety 6 years, 11 months ago
On Wed, May 30, 2018 at 02:30:05AM +0530, Sukrit Bhatnagar wrote:
> Modifiy code to use cleanup macros where required.

s/fiy/fy

>
> Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
> ---
>  src/util/virarptable.c | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/src/util/virarptable.c b/src/util/virarptable.c
> index c0e90dc..f53a479 100644
> --- a/src/util/virarptable.c
> +++ b/src/util/virarptable.c
> @@ -71,9 +71,8 @@ virArpTableGet(void)
>  {
>      int num = 0;
>      int msglen;
> -    void *nlData = NULL;
> +    VIR_AUTOFREE(void *) nlData = NULL;
>      virArpTablePtr table = NULL;
> -    char *ipstr = NULL;
>      struct nlmsghdr* nh;
>      struct rtattr * tb[NDA_MAX+1];
>
> @@ -89,6 +88,7 @@ virArpTableGet(void)
>      VIR_WARNINGS_NO_CAST_ALIGN
>      for (; NLMSG_OK(nh, msglen); nh = NLMSG_NEXT(nh, msglen)) {
>          VIR_WARNINGS_RESET
> +        VIR_AUTOFREE(char *) ipstr = NULL;
>          struct ndmsg *r = NLMSG_DATA(nh);
>          int len = nh->nlmsg_len;
>          void *addr;
> @@ -134,8 +134,6 @@ virArpTableGet(void)
>
>              if (VIR_STRDUP(table->t[num].ipaddr, ipstr) < 0)
>                  goto cleanup;
> -
> -            VIR_FREE(ipstr);
>          }
>
>          if (tb[NDA_LLADDR]) {
> @@ -155,13 +153,10 @@ virArpTableGet(void)
>      }
>
>   end_of_netlink_messages:
> -    VIR_FREE(nlData);
>      return table;
>
>   cleanup:
>      virArpTableFree(table);
> -    VIR_FREE(ipstr);
> -    VIR_FREE(nlData);
>      return NULL;
>  }

Looks good.

Erik

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