]> git.ipfire.org Git - people/ms/libloc.git/commitdiff
tree: Fix memory leak in dedup code
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 6 Mar 2024 22:44:29 +0000 (22:44 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 6 Mar 2024 22:44:29 +0000 (22:44 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/network-tree.c

index e26b1257ce1bff33257cc86de6e3487c87782667..4359308ed7bc698fa15fae83dd4e0acaacf0ce1e 100644 (file)
@@ -506,7 +506,7 @@ static int loc_network_tree_dedup_step(struct loc_network* network, void* data)
                        if (loc_network_properties_cmp(n, network) == 0) {
                                r = loc_network_tree_delete_network(ctx->tree, network);
                                if (r)
-                                       return r;
+                                       goto END;
 
                                // Count
                                (*ctx->removed)++;
@@ -518,6 +518,9 @@ static int loc_network_tree_dedup_step(struct loc_network* network, void* data)
                        // Once we found a subnet, we are done
                        break;
                }
+
+               loc_network_unref(n);
+               n = NULL;
        }
 
        // If network did not get removed, we push it into the stack