summaryrefslogtreecommitdiffstats
path: root/src/vnet/srmpls
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/srmpls')
-rw-r--r--src/vnet/srmpls/sr_mpls_api.c2
-rwxr-xr-xsrc/vnet/srmpls/sr_mpls_policy.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/vnet/srmpls/sr_mpls_api.c b/src/vnet/srmpls/sr_mpls_api.c
index a6294e391b6..2c36c0dd9f2 100644
--- a/src/vnet/srmpls/sr_mpls_api.c
+++ b/src/vnet/srmpls/sr_mpls_api.c
@@ -67,6 +67,7 @@ vl_api_sr_mpls_policy_add_t_handler (vl_api_sr_mpls_policy_add_t * mp)
int rv = 0;
rv = sr_mpls_policy_add (ntohl (mp->bsid),
segments, mp->type, ntohl (mp->weight));
+ vec_free (segments);
REPLY_MACRO (VL_API_SR_MPLS_POLICY_ADD_REPLY);
}
@@ -91,6 +92,7 @@ vl_api_sr_mpls_policy_mod_t_handler (vl_api_sr_mpls_policy_mod_t * mp)
rv = sr_mpls_policy_mod (ntohl (mp->bsid),
mp->operation, segments, ntohl (mp->sl_index),
ntohl (mp->weight));
+ vec_free (segments);
REPLY_MACRO (VL_API_SR_MPLS_POLICY_MOD_REPLY);
}
diff --git a/src/vnet/srmpls/sr_mpls_policy.c b/src/vnet/srmpls/sr_mpls_policy.c
index 86cd169716a..8fc7e730e47 100755
--- a/src/vnet/srmpls/sr_mpls_policy.c
+++ b/src/vnet/srmpls/sr_mpls_policy.c
@@ -502,6 +502,7 @@ sr_mpls_policy_command_fn (vlib_main_t * vm, unformat_input_t * input,
rv = sr_mpls_policy_add (bsid, segments,
(is_spray ? SR_POLICY_TYPE_SPRAY :
SR_POLICY_TYPE_DEFAULT), weight);
+ vec_free (segments);
}
else if (is_del)
rv = sr_mpls_policy_del (bsid);
@@ -516,6 +517,7 @@ sr_mpls_policy_command_fn (vlib_main_t * vm, unformat_input_t * input,
if (operation == 3 && weight == (u32) ~ 0)
return clib_error_return (0, "No new weight for the SL specified");
rv = sr_mpls_policy_mod (bsid, operation, segments, sl_index, weight);
+ vec_free (segments);
}
switch (rv)
{