Under extreme condition, it is possible for input node to have more than 256 packets available
to process. Add a check to the while loop to prevent overrun buffer_indices and nexts.
Change-Id: Id9830e5c254f04216eb79e864a5460e08cf2e4e5
Signed-off-by: Steven <sluong@cisco.com>
comp_ring = &rxq->rx_comp_ring;
bi = buffer_indices;
next = nexts;
- while (comp_ring->gen ==
- (rxq->rx_comp[comp_ring->next].flags & VMXNET3_RXCF_GEN))
+ while (PREDICT_TRUE (n_rx_packets < VLIB_FRAME_SIZE) &&
+ (comp_ring->gen ==
+ (rxq->rx_comp[comp_ring->next].flags & VMXNET3_RXCF_GEN)))
{
vlib_buffer_t *b0;
u32 bi0;