i40e: fix build with gcc 5.1
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 29 May 2015 14:34:15 +0000 (15:34 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 2 Jun 2015 16:24:28 +0000 (18:24 +0200)
On Fedora 22, with GCC 5.1, errors are reported due to array accesses
being potentially out of bounds. This commit fixes this by adding in an
extra bounds check to the loop counter.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
drivers/net/i40e/i40e_fdir.c

index e688b4f..4bf98d0 100644 (file)
@@ -551,7 +551,7 @@ i40e_set_flx_pld_cfg(struct i40e_pf *pf,
        memset(flex_pit, 0, sizeof(flex_pit));
        num = i40e_srcoff_to_flx_pit(cfg->src_offset, flex_pit);
 
-       for (i = 0; i < num; i++) {
+       for (i = 0; i < RTE_MIN(num, RTE_DIM(flex_pit)); i++) {
                field_idx = layer_idx * I40E_MAX_FLXPLD_FIED + i;
                /* record the info in fdir structure */
                pf->fdir.flex_set[field_idx].src_offset =