On 05/13/2012 07:43 PM, Dan Carpenter wrote: > Hi Arend, > > This code is not really new, but I thought I would email you anyway > because I know you are responsive. :) Dito ;-) > The patch 5b435de0d786: "net: wireless: add brcm80211 drivers" from > Oct 5, 2011, leads to the following Smatch complaint: > > drivers/net/wireless/brcm80211/brcmsmac/ampdu.c:741 brcms_c_sendampdu() > warn: variable dereferenced before check 'p' (see line 739) > > drivers/net/wireless/brcm80211/brcmsmac/ampdu.c > 733 /* > 734 * check to see if the next pkt is > 735 * a candidate for aggregation > 736 */ > 737 p = pktq_ppeek(&qi->q, prec); > 738 /* tx_info must be checked with current p */ > 739 tx_info = IEEE80211_SKB_CB(p); > ^^^^^^^^^^^^^^^^ > "p" is dereferenced inside the call to IEEE80211_SKB_CB(). > > 740 > 741 if (p) { > ^^^ > Checked too late. > > 742 if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && > 743 ((u8) (p->priority) == tid)) { > > regards, > dan carpenter > > Thanks for running smatch. I will look in the current code base and fix this. Just out of curiosity: Another static checker used regularly is Coccinelle. What are the pros and cons of smatch compared to Coccinelle? Gr. AvS -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html