Hi Luca,

Thank you for the patch! Perhaps something to improve:

url:    
https://github.com/0day-ci/linux/commits/Luca-Coelho/mac80211-Increase-MAX_MSG_LEN/20190316-083719
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git 
master

smatch warnings:
net/wireless/scan.c:1610 cfg80211_parse_mbssid_data() warn: should '1 << 
(mbssid_index_ie[2])' be a 64 bit type?

# 
https://github.com/0day-ci/linux/commit/e28e850d09f80732c1e9c04e0079c4e40f23ef7d
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout e28e850d09f80732c1e9c04e0079c4e40f23ef7d
vim +1610 net/wireless/scan.c

e28e850d Sara Sharon   2019-03-15  1530  
0b8fb823 Peng Xu       2019-01-21  1531  static void 
cfg80211_parse_mbssid_data(struct wiphy *wiphy,
0b8fb823 Peng Xu       2019-01-21  1532                                        
struct cfg80211_inform_bss *data,
0b8fb823 Peng Xu       2019-01-21  1533                                        
enum cfg80211_bss_frame_type ftype,
0b8fb823 Peng Xu       2019-01-21  1534                                        
const u8 *bssid, u64 tsf,
0b8fb823 Peng Xu       2019-01-21  1535                                        
u16 beacon_interval, const u8 *ie,
0b8fb823 Peng Xu       2019-01-21  1536                                        
size_t ielen,
0cd01efb Sara Sharon   2019-01-22  1537                                        
struct cfg80211_non_tx_bss *non_tx_data,
0b8fb823 Peng Xu       2019-01-21  1538                                        
gfp_t gfp)
0b8fb823 Peng Xu       2019-01-21  1539  {
1c8745f3 Johannes Berg 2019-02-07  1540         const u8 *mbssid_index_ie;
1c8745f3 Johannes Berg 2019-02-07  1541         const struct element *elem, 
*sub;
1c8745f3 Johannes Berg 2019-02-07  1542         size_t new_ie_len;
0b8fb823 Peng Xu       2019-01-21  1543         u8 new_bssid[ETH_ALEN];
e28e850d Sara Sharon   2019-03-15  1544         u8 *new_ie, *profile;
e28e850d Sara Sharon   2019-03-15  1545         u64 seen_indices = 0;
0b8fb823 Peng Xu       2019-01-21  1546         u16 capability;
0b8fb823 Peng Xu       2019-01-21  1547         struct cfg80211_bss *bss;
0b8fb823 Peng Xu       2019-01-21  1548  
0cd01efb Sara Sharon   2019-01-22  1549         if (!non_tx_data)
0b8fb823 Peng Xu       2019-01-21  1550                 return;
0b8fb823 Peng Xu       2019-01-21  1551         if 
(!cfg80211_find_ie(WLAN_EID_MULTIPLE_BSSID, ie, ielen))
0b8fb823 Peng Xu       2019-01-21  1552                 return;
213ed579 Sara Sharon   2019-01-16  1553         if (!wiphy->support_mbssid)
213ed579 Sara Sharon   2019-01-16  1554                 return;
213ed579 Sara Sharon   2019-01-16  1555         if 
(wiphy->support_only_he_mbssid &&
213ed579 Sara Sharon   2019-01-16  1556             
!cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ie, ielen))
213ed579 Sara Sharon   2019-01-16  1557                 return;
0b8fb823 Peng Xu       2019-01-21  1558  
0b8fb823 Peng Xu       2019-01-21  1559         new_ie = 
kmalloc(IEEE80211_MAX_DATA_LEN, gfp);
0b8fb823 Peng Xu       2019-01-21  1560         if (!new_ie)
0b8fb823 Peng Xu       2019-01-21  1561                 return;
0b8fb823 Peng Xu       2019-01-21  1562  
e28e850d Sara Sharon   2019-03-15  1563         profile = kmalloc(ielen, gfp);
e28e850d Sara Sharon   2019-03-15  1564         if (!profile)
e28e850d Sara Sharon   2019-03-15  1565                 goto out;
e28e850d Sara Sharon   2019-03-15  1566  
1c8745f3 Johannes Berg 2019-02-07  1567         for_each_element_id(elem, 
WLAN_EID_MULTIPLE_BSSID, ie, ielen) {
1c8745f3 Johannes Berg 2019-02-07  1568                 if (elem->datalen < 4)
1c8745f3 Johannes Berg 2019-02-07  1569                         continue;
1c8745f3 Johannes Berg 2019-02-07  1570                 for_each_element(sub, 
elem->data + 1, elem->datalen - 1) {
e28e850d Sara Sharon   2019-03-15  1571                         u8 profile_len;
e28e850d Sara Sharon   2019-03-15  1572  
1c8745f3 Johannes Berg 2019-02-07  1573                         if (sub->id != 
0 || sub->datalen < 4) {
0b8fb823 Peng Xu       2019-01-21  1574                                 /* not 
a valid BSS profile */
0b8fb823 Peng Xu       2019-01-21  1575                                 
continue;
0b8fb823 Peng Xu       2019-01-21  1576                         }
0b8fb823 Peng Xu       2019-01-21  1577  
1c8745f3 Johannes Berg 2019-02-07  1578                         if 
(sub->data[0] != WLAN_EID_NON_TX_BSSID_CAP ||
1c8745f3 Johannes Berg 2019-02-07  1579                             
sub->data[1] != 2) {
0b8fb823 Peng Xu       2019-01-21  1580                                 /* The 
first element within the Nontransmitted
0b8fb823 Peng Xu       2019-01-21  1581                                  * 
BSSID Profile is not the Nontransmitted
0b8fb823 Peng Xu       2019-01-21  1582                                  * 
BSSID Capability element.
0b8fb823 Peng Xu       2019-01-21  1583                                  */
0b8fb823 Peng Xu       2019-01-21  1584                                 
continue;
0b8fb823 Peng Xu       2019-01-21  1585                         }
0b8fb823 Peng Xu       2019-01-21  1586  
e28e850d Sara Sharon   2019-03-15  1587                         memset(profile, 
0, ielen);
e28e850d Sara Sharon   2019-03-15  1588                         profile_len = 
cfg80211_merge_profile(ie, ielen,
e28e850d Sara Sharon   2019-03-15  1589                                         
                     elem,
e28e850d Sara Sharon   2019-03-15  1590                                         
                     sub,
e28e850d Sara Sharon   2019-03-15  1591                                         
                     &profile,
e28e850d Sara Sharon   2019-03-15  1592                                         
                     ielen);
e28e850d Sara Sharon   2019-03-15  1593  
0b8fb823 Peng Xu       2019-01-21  1594                         /* found a 
Nontransmitted BSSID Profile */
0b8fb823 Peng Xu       2019-01-21  1595                         mbssid_index_ie 
= cfg80211_find_ie
0b8fb823 Peng Xu       2019-01-21  1596                                 
(WLAN_EID_MULTI_BSSID_IDX,
e28e850d Sara Sharon   2019-03-15  1597                                  
profile, profile_len);
0b8fb823 Peng Xu       2019-01-21  1598                         if 
(!mbssid_index_ie || mbssid_index_ie[1] < 1 ||
e28e850d Sara Sharon   2019-03-15  1599                             
mbssid_index_ie[2] == 0 ||
e28e850d Sara Sharon   2019-03-15  1600                             
mbssid_index_ie[2] > 46) {
0b8fb823 Peng Xu       2019-01-21  1601                                 /* No 
valid Multiple BSSID-Index element */
0b8fb823 Peng Xu       2019-01-21  1602                                 
continue;
0b8fb823 Peng Xu       2019-01-21  1603                         }
0b8fb823 Peng Xu       2019-01-21  1604  
e28e850d Sara Sharon   2019-03-15  1605                         if 
(seen_indices & BIT(mbssid_index_ie[2]))
                                                                    
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I should fix Smatch to generate a warning here as well...

e28e850d Sara Sharon   2019-03-15  1606                                 /* We 
don't support legacy split of a profile */
e28e850d Sara Sharon   2019-03-15  1607                                 
net_dbg_ratelimited("Partial info for BSSID index %d\n",
e28e850d Sara Sharon   2019-03-15  1608                                         
            mbssid_index_ie[2]);
e28e850d Sara Sharon   2019-03-15  1609  
e28e850d Sara Sharon   2019-03-15 @1610                         seen_indices |= 
BIT(mbssid_index_ie[2]);
                                                                
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

e28e850d Sara Sharon   2019-03-15  1611  
0cd01efb Sara Sharon   2019-01-22  1612                         
non_tx_data->bssid_index = mbssid_index_ie[2];
0cd01efb Sara Sharon   2019-01-22  1613                         
non_tx_data->max_bssid_indicator = elem->data[0];
0cd01efb Sara Sharon   2019-01-22  1614  
0cd01efb Sara Sharon   2019-01-22  1615                         
cfg80211_gen_new_bssid(bssid,
0cd01efb Sara Sharon   2019-01-22  1616                                         
       non_tx_data->max_bssid_indicator,
0cd01efb Sara Sharon   2019-01-22  1617                                         
       non_tx_data->bssid_index,
0b8fb823 Peng Xu       2019-01-21  1618                                         
       new_bssid);
0b8fb823 Peng Xu       2019-01-21  1619                         memset(new_ie, 
0, IEEE80211_MAX_DATA_LEN);
e28e850d Sara Sharon   2019-03-15  1620                         new_ie_len = 
cfg80211_gen_new_ie(ie, ielen,
e28e850d Sara Sharon   2019-03-15  1621                                         
                 profile,
e28e850d Sara Sharon   2019-03-15  1622                                         
                 profile_len, new_ie,
0b8fb823 Peng Xu       2019-01-21  1623                                         
                 gfp);
0b8fb823 Peng Xu       2019-01-21  1624                         if (!new_ie_len)
0b8fb823 Peng Xu       2019-01-21  1625                                 
continue;
0b8fb823 Peng Xu       2019-01-21  1626  
e28e850d Sara Sharon   2019-03-15  1627                         capability = 
get_unaligned_le16(profile + 2);
0b8fb823 Peng Xu       2019-01-21  1628                         bss = 
cfg80211_inform_single_bss_data(wiphy, data,
0b8fb823 Peng Xu       2019-01-21  1629                                         
                      ftype,
0b8fb823 Peng Xu       2019-01-21  1630                                         
                      new_bssid, tsf,
0b8fb823 Peng Xu       2019-01-21  1631                                         
                      capability,
0b8fb823 Peng Xu       2019-01-21  1632                                         
                      beacon_interval,
0b8fb823 Peng Xu       2019-01-21  1633                                         
                      new_ie,
0b8fb823 Peng Xu       2019-01-21  1634                                         
                      new_ie_len,
0cd01efb Sara Sharon   2019-01-22  1635                                         
                      non_tx_data,
0cd01efb Sara Sharon   2019-01-22  1636                                         
                      gfp);
0b8fb823 Peng Xu       2019-01-21  1637                         if (!bss)
0b8fb823 Peng Xu       2019-01-21  1638                                 break;
0b8fb823 Peng Xu       2019-01-21  1639                         
cfg80211_put_bss(wiphy, bss);
0b8fb823 Peng Xu       2019-01-21  1640                 }
0b8fb823 Peng Xu       2019-01-21  1641         }
0b8fb823 Peng Xu       2019-01-21  1642  
e28e850d Sara Sharon   2019-03-15  1643  out:
0b8fb823 Peng Xu       2019-01-21  1644         kfree(new_ie);
e28e850d Sara Sharon   2019-03-15  1645         kfree(profile);
0b8fb823 Peng Xu       2019-01-21  1646  }
0b8fb823 Peng Xu       2019-01-21  1647  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Reply via email to