summaryrefslogtreecommitdiffstats
path: root/vnet
diff options
context:
space:
mode:
Diffstat (limited to 'vnet')
-rw-r--r--vnet/vnet/mpls/mpls.c10
-rw-r--r--vnet/vnet/sr/sr_replicate.c3
2 files changed, 8 insertions, 5 deletions
diff --git a/vnet/vnet/mpls/mpls.c b/vnet/vnet/mpls/mpls.c
index c3e642a649c..0e610e175cc 100644
--- a/vnet/vnet/mpls/mpls.c
+++ b/vnet/vnet/mpls/mpls.c
@@ -415,17 +415,17 @@ vnet_mpls_local_label (vlib_main_t * vm,
fib_node_index_t lfe, fib_index;
u32 fi;
- pfx.fp_proto = FIB_PROTOCOL_MPLS;
- pfx.fp_len = 21;
- pfx.fp_label = local_label;
- pfx.fp_payload_proto = fib_proto_to_dpo(rpaths[0].frp_proto);
-
if (NULL == rpaths)
{
error = clib_error_return(0 , "no paths");
goto done;
}
+ pfx.fp_proto = FIB_PROTOCOL_MPLS;
+ pfx.fp_len = 21;
+ pfx.fp_label = local_label;
+ pfx.fp_payload_proto = fib_proto_to_dpo(rpaths[0].frp_proto);
+
/*
* the CLI parsing stored table Ids, swap to FIB indicies
*/
diff --git a/vnet/vnet/sr/sr_replicate.c b/vnet/vnet/sr/sr_replicate.c
index 34cde3d2938..5f9de5042af 100644
--- a/vnet/vnet/sr/sr_replicate.c
+++ b/vnet/vnet/sr/sr_replicate.c
@@ -253,6 +253,8 @@ sr_replicate_node_fn (vlib_main_t * vm,
/* Not the last tunnel to process */
clone0 = rte_pktmbuf_clone
(orig_mb0, bm->pktmbuf_pools[socket_id]);
+ if (clone0 == 0)
+ goto clone_fail;
nb_seg = 0;
clone0i = clone0;
clone0_c = NULL;
@@ -289,6 +291,7 @@ sr_replicate_node_fn (vlib_main_t * vm,
if (PREDICT_FALSE (!clone0 || !hdr_mb0))
{
+ clone_fail:
b0->error = node->errors[SR_REPLICATE_ERROR_NO_BUFFERS];
vec_foreach_index (i, rte_mbuf_vec)