OSDN Git Service

iwlwifi: pcie gen2: check iwl_pcie_gen2_set_tb() return value
authorJohannes Berg <johannes.berg@intel.com>
Mon, 18 Jun 2018 07:53:36 +0000 (09:53 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Sat, 6 Oct 2018 07:25:50 +0000 (10:25 +0300)
If we use the iwl_pcie_gen2_set_tb() return value for BIT(),
we should validate that it's not going to be negative, so do
the check and bail out if we hit an error. We shouldn't, as
we check if it'll fit beforehand, but better be safe.

Fixes: ab6c644539e9 ("iwlwifi: pcie: copy TX functions to new transport")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c

index ba9d37b..b71cf55 100644 (file)
@@ -438,6 +438,8 @@ static int iwl_pcie_gen2_tx_add_frags(struct iwl_trans *trans,
                        return -ENOMEM;
                tb_idx = iwl_pcie_gen2_set_tb(trans, tfd, tb_phys,
                                              skb_frag_size(frag));
+               if (tb_idx < 0)
+                       return tb_idx;
 
                out_meta->tbs |= BIT(tb_idx);
        }