mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 11:21:07 +00:00
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>
This commit is contained in:
parent
e0909ff51f
commit
503d1ec6eb
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user