]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: Fix sadj memory leak
authorDonald Sharp <sharpd@nvidia.com>
Fri, 9 Dec 2022 12:44:26 +0000 (07:44 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Fri, 9 Dec 2022 12:44:26 +0000 (07:44 -0500)
In some cases the sadj was directly dropped.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
isisd/isis_spf.c

index 0d1a5db0d691ae0cc1a030e84d21a3ef9bc8c1d6..89e751b4e6c3677f746be3069350337ee64bfe34 100644 (file)
@@ -1297,6 +1297,7 @@ static void spf_adj_get_reverse_metrics(struct isis_spftree *spftree)
                if (lsp_adj == NULL || lsp_adj->hdr.rem_lifetime == 0) {
                        /* Delete one-way adjacency. */
                        listnode_delete(spftree->sadj_list, sadj);
+                       isis_spf_adj_free(sadj);
                        continue;
                }
 
@@ -1313,6 +1314,7 @@ static void spf_adj_get_reverse_metrics(struct isis_spftree *spftree)
                if (args.reverse_metric == UINT32_MAX) {
                        /* Delete one-way adjacency. */
                        listnode_delete(spftree->sadj_list, sadj);
+                       isis_spf_adj_free(sadj);
                        continue;
                }
                sadj->metric = args.reverse_metric;