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;
 }