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
diff --git a/src/vnet/ip/punt_node.c b/src/vnet/ip/punt_node.c
index b48af84..0306d59 100644
--- a/src/vnet/ip/punt_node.c
+++ b/src/vnet/ip/punt_node.c
@@ -596,6 +596,7 @@
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;
}