From 1adc7e78ad3eb7e800d0ce3ace56f53ab7aebffe Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Wed, 8 Apr 2020 14:31:45 -0400 Subject: 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 Change-Id: I774ad8f8c1a0633de4cf8ae5530629201c229347 --- src/vnet/ip/punt_node.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/vnet/ip') 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; } -- cgit 1.2.3-korg