aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/ip
diff options
context:
space:
mode:
authorDave Barach <dave@barachs.net>2020-04-08 14:31:45 -0400
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-08-13 17:20:47 +0000
commit83be6cb7908533ae8230d39909768d22a322cc3a (patch)
tree974b57f35c20a66c87d2f61dc00488047bbf3676 /src/vnet/ip
parent22fb6e6ef8fc81227b3e40cb074f745a3e7361dd (diff)
misc: fix error handling in punt_replicate
If vlib_buffer_clone (...) fails due to a buffer allocation error, update *n_dispatched with the actual number of clones, not the requested number of clones. Punt_replicate(...) should not set *to_next[0] = bi0. The original buffer is enqueued separately in punt_dispatch_node(...) Type: fix Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I774ad8f8c1a0633de4cf8ae5530629201c229347 (cherry picked from commit 1adc7e78ad3eb7e800d0ce3ace56f53ab7aebffe)
Diffstat (limited to 'src/vnet/ip')
-rw-r--r--src/vnet/ip/punt_node.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/vnet/ip/punt_node.c b/src/vnet/ip/punt_node.c
index b48af84475c..0306d597293 100644
--- a/src/vnet/ip/punt_node.c
+++ b/src/vnet/ip/punt_node.c
@@ -596,6 +596,7 @@ punt_socket_rx_fd (vlib_main_t * vm, vlib_node_runtime_t * node, u32 fd)
return 1;
error:
+ vlib_put_next_frame (vm, node, next, n_left_to_next);
vlib_node_increment_counter (vm, punt_socket_rx_node.index, error, 1);
return 0;
}