ixgbe: fix array overflow in vector Rx
authorBruce Richardson <bruce.richardson@intel.com>
Tue, 16 Dec 2014 16:30:23 +0000 (16:30 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 16 Dec 2014 23:40:37 +0000 (00:40 +0100)
Switch the order of the conditions in a while loop, so we check the
range of "i" against the max, before using it to index into the array.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c

index 3a30fa7..b54cb19 100644 (file)
@@ -489,7 +489,7 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
        unsigned i = 0;
        if (rxq->pkt_first_seg == NULL) {
                /* find the first split flag, and only reassemble then*/
-               while (!split_flags[i] && i < nb_bufs)
+               while (i < nb_bufs && !split_flags[i])
                        i++;
                if (i == nb_bufs)
                        return nb_bufs;