Changeset 6276

Show
Ignore:
Timestamp:
10/12/10 02:49:20 (3 years ago)
Author:
jow
Message:

libiwinfo: fix two segfaults in nl80211 backend

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • luci/trunk/contrib/package/iwinfo/src/iwinfo_nl80211.c

    r6265 r6276  
    137137    if( cv && cv->msg ) 
    138138        nlmsg_free(cv->msg); 
     139 
     140    if( cv ) 
     141    { 
     142        cv->cb  = NULL; 
     143        cv->msg = NULL; 
     144    } 
    139145} 
    140146 
     
    579585int nl80211_get_noise(const char *ifname, int *buf) 
    580586{ 
     587    int rv = -1; 
    581588    struct nl80211_msg_conveyor *req, *res; 
    582589    struct nlattr *si[NL80211_SURVEY_INFO_MAX + 1]; 
     
    596603            { 
    597604                if( !nla_parse_nested(si, NL80211_SURVEY_INFO_MAX, 
    598                         res->attr[NL80211_ATTR_SURVEY_INFO], sp) ) 
     605                        res->attr[NL80211_ATTR_SURVEY_INFO], sp) && 
     606                    si[NL80211_SURVEY_INFO_NOISE] ) 
    599607                { 
    600608                    *buf = (int8_t)nla_get_u8(si[NL80211_SURVEY_INFO_NOISE]); 
    601                     return 0; 
     609                    rv = 0; 
    602610                } 
    603611            } 
     
    607615    } 
    608616 
    609     return -1; 
     617    return rv; 
    610618} 
    611619