Skip to content
Permalink
Browse files

bgpd: avoid memory leak in bgp flowspec list, plus usage of bool

Avoid memory leak in bgp flowspec list.
Usage of bool parameter instead of int, to handle the number of entries
PBR.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
  • Loading branch information...
pguibert6WIND committed Aug 20, 2018
1 parent e0909ff commit 503d1ec6eb5a505c57b78a65a9c7ea94b932355e
Showing with 6 additions and 7 deletions.
  1. +5 −5 bgpd/bgp_flowspec_vty.c
  2. +1 −2 bgpd/bgp_route.c
@@ -335,7 +335,7 @@ void route_vty_out_flowspec(struct vty *vty, struct prefix *p,
struct listnode *node;
struct bgp_pbr_match_entry *bpme;
struct bgp_pbr_match *bpm;
int unit = 0;
bool list_began = false;
struct list *list_bpm;

list_bpm = list_new();
@@ -347,14 +347,14 @@ void route_vty_out_flowspec(struct vty *vty, struct prefix *p,
if (listnode_lookup(list_bpm, bpm))
continue;
listnode_add(list_bpm, bpm);
if (unit == 0)
if (!list_began) {
vty_out(vty, " (");
else
list_began = true;
} else
vty_out(vty, ", ");
vty_out(vty, "%s", bpm->ipset_name);
unit++;
}
if (unit)
if (list_began)
vty_out(vty, ")");
vty_out(vty, "\n");
list_delete_and_null(&list_bpm);
@@ -198,8 +198,7 @@ static void bgp_info_extra_free(struct bgp_info_extra **extra)
bgp_unlock(e->bgp_orig);

if ((*extra)->bgp_fs_pbr)
list_delete_all_node((*extra)->bgp_fs_pbr);
(*extra)->bgp_fs_pbr = NULL;
list_delete_and_null(&((*extra)->bgp_fs_pbr));
XFREE(MTYPE_BGP_ROUTE_EXTRA, *extra);

*extra = NULL;

0 comments on commit 503d1ec

Please sign in to comment.
You can’t perform that action at this time.