Search Linux Wireless

Re: [bug report] mt76: fix transmission of encrypted management frames

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 30, 2018 at 03:39:56PM +0300, Dan Carpenter wrote:
> Hello Felix Fietkau,
> 
> The patch 23405236460b: "mt76: fix transmission of encrypted
> management frames" from Jan 18, 2018, leads to the following static
> checker warning:
> 
> 	drivers/net/wireless/mediatek/mt76/mt76x2_tx.c:41 mt76x2_tx()
> 	warn: always true condition '(wcid->hw_key_idx != -1) => (0-255 != (-1))'
> 
> drivers/net/wireless/mediatek/mt76/mt76x2_tx.c
>     26  void mt76x2_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
>     27               struct sk_buff *skb)
>     28  {
>     29          struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
>     30          struct mt76x2_dev *dev = hw->priv;
>     31          struct ieee80211_vif *vif = info->control.vif;
>     32          struct mt76_wcid *wcid = &dev->global_wcid;
>     33  
>     34          if (control->sta) {
>     35                  struct mt76x2_sta *msta;
>     36  
>     37                  msta = (struct mt76x2_sta *) control->sta->drv_priv;
>     38                  wcid = &msta->wcid;
>     39          }
>     40  
>     41          if (vif || (!info->control.hw_key && wcid->hw_key_idx != -1)) {
>                                                      ^^^^^^^^^^^^^^^^^^^^^^
> We set ->hw_key_idx to -1 but it's a u8 so it gets truncated to 0xFF.
> This should probably be a define anyway.
> 
>     42                  struct mt76x2_vif *mvif;
>     43  
>     44                  mvif = (struct mt76x2_vif *) vif->drv_priv;
                                                       ^^^^^^^^^^^^^
Oh, there is another static checker warning because of the "vif" check:

        drivers/net/wireless/mediatek/mt76/mt76x2_tx.c:44 mt76x2_tx()
        error: we previously assumed 'vif' could be null (see line 41)

Assume "vif" is NULL, and info->control.hw_key is zero and ->hw_key_idx
is not -1.

regards,
dan carpenter




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux