summaryrefslogtreecommitdiff
path: root/pbrd
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2023-08-20 22:32:21 +0300
committerGitHub <noreply@github.com>2023-08-20 22:32:21 +0300
commit19ad3e2770c5b4a6235194dd58dd444dcd1cf82c (patch)
tree117754f31398764e255f7d436eeaf64447dc7dd7 /pbrd
parent899427b5150b19b4f950e2ef3b70c7089c45f6ff (diff)
parentc09013e33a2cac11490eade8dbc0fe71c843e320 (diff)
Merge pull request #14226 from Keelan10/fix-pbrd-leak
pbrd: Correct Handling of Sequence Deletion
Diffstat (limited to 'pbrd')
-rw-r--r--pbrd/pbr_map.c2
-rw-r--r--pbrd/pbr_map.h2
-rw-r--r--pbrd/pbr_vty.c1
3 files changed, 4 insertions, 1 deletions
diff --git a/pbrd/pbr_map.c b/pbrd/pbr_map.c
index 6b81e1058e..774e7ee85a 100644
--- a/pbrd/pbr_map.c
+++ b/pbrd/pbr_map.c
@@ -62,7 +62,7 @@ static int pbr_map_sequence_compare(const struct pbr_map_sequence *pbrms1,
return 1;
}
-static void pbr_map_sequence_delete(struct pbr_map_sequence *pbrms)
+void pbr_map_sequence_delete(struct pbr_map_sequence *pbrms)
{
XFREE(MTYPE_TMP, pbrms->internal_nhg_name);
diff --git a/pbrd/pbr_map.h b/pbrd/pbr_map.h
index 61577e4076..9fb674bd6e 100644
--- a/pbrd/pbr_map.h
+++ b/pbrd/pbr_map.h
@@ -251,6 +251,8 @@ extern void pbr_map_policy_install(const char *name);
extern void pbr_map_policy_delete(struct pbr_map *pbrm,
struct pbr_map_interface *pmi);
+extern void pbr_map_sequence_delete(struct pbr_map_sequence *pbrms);
+
extern void pbr_map_check_vrf_nh_group_change(const char *nh_group,
struct pbr_vrf *pbr_vrf,
uint32_t old_vrf_id);
diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c
index 3dbb0b958b..1f1e42218f 100644
--- a/pbrd/pbr_vty.c
+++ b/pbrd/pbr_vty.c
@@ -123,6 +123,7 @@ DEFUN_NOSH(no_pbr_map,
continue;
pbr_map_delete(pbrms);
+ pbr_map_sequence_delete(pbrms);
}
return CMD_SUCCESS;