]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-lldp-rx: use _cleanup_ attribute at one more place
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Sep 2021 06:30:52 +0000 (15:30 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Sep 2021 08:55:19 +0000 (17:55 +0900)
src/libsystemd-network/sd-lldp-rx.c

index fd3097b26b0460e1ce962e2d65aa2c0074bbe3ef..bf544a5e3aba89cdf9de5d80d722291481ced3f4 100644 (file)
@@ -454,7 +454,8 @@ static inline int neighbor_compare_func(sd_lldp_neighbor * const *a, sd_lldp_nei
 }
 
 _public_ int sd_lldp_rx_get_neighbors(sd_lldp_rx *lldp_rx, sd_lldp_neighbor ***ret) {
-        sd_lldp_neighbor **l = NULL, *n;
+        _cleanup_free_ sd_lldp_neighbor **l = NULL;
+        sd_lldp_neighbor *n;
         int k = 0, r;
 
         assert_return(lldp_rx, -EINVAL);
@@ -470,10 +471,8 @@ _public_ int sd_lldp_rx_get_neighbors(sd_lldp_rx *lldp_rx, sd_lldp_neighbor ***r
                 return -ENOMEM;
 
         r = lldp_rx_start_timer(lldp_rx, NULL);
-        if (r < 0) {
-                free(l);
+        if (r < 0)
                 return r;
-        }
 
         HASHMAP_FOREACH(n, lldp_rx->neighbor_by_id)
                 l[k++] = sd_lldp_neighbor_ref(n);
@@ -482,7 +481,7 @@ _public_ int sd_lldp_rx_get_neighbors(sd_lldp_rx *lldp_rx, sd_lldp_neighbor ***r
 
         /* Return things in a stable order */
         typesafe_qsort(l, k, neighbor_compare_func);
-        *ret = l;
+        *ret = TAKE_PTR(l);
 
         return k;
 }