OSDN Git Service

ixgbevf: off by one in ixgbevf_ipsec_tx()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 19 Sep 2018 10:35:29 +0000 (13:35 +0300)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 3 Oct 2018 19:29:34 +0000 (12:29 -0700)
The ipsec->tx_tbl[] array has IXGBE_IPSEC_MAX_SA_COUNT elements so the >
should be a >=.

Fixes: 0062e7cc955e ("ixgbevf: add VF IPsec offload code")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbevf/ipsec.c

index 9e4f47d..e8a3231 100644 (file)
@@ -467,7 +467,7 @@ int ixgbevf_ipsec_tx(struct ixgbevf_ring *tx_ring,
        }
 
        sa_idx = xs->xso.offload_handle - IXGBE_IPSEC_BASE_TX_INDEX;
-       if (unlikely(sa_idx > IXGBE_IPSEC_MAX_SA_COUNT)) {
+       if (unlikely(sa_idx >= IXGBE_IPSEC_MAX_SA_COUNT)) {
                netdev_err(tx_ring->netdev, "%s: bad sa_idx=%d handle=%lu\n",
                           __func__, sa_idx, xs->xso.offload_handle);
                return 0;