Ticket #2284: madwifi-r4020-gcc4.4.diff
| File madwifi-r4020-gcc4.4.diff, 3.3 kB (added by Andras Korn, 3 years ago) |
|---|
-
net80211/ieee80211_wireless.c
old new 1628 1628 { 1629 1629 struct ieee80211vap *vap = netdev_priv(dev); 1630 1630 struct ieee80211com *ic = vap->iv_ic; 1631 struct waplistreq req; /* XXX off stack */ 1631 struct waplistreq *req = kmalloc(sizeof (struct waplistreq), GFP_KERNEL); 1632 if (!req) { 1633 return -ENOMEM; 1634 } 1632 1635 1633 req .vap = vap;1634 req .i = 0;1635 ieee80211_scan_iterate(ic, waplist_cb, &req);1636 req->vap = vap; 1637 req->i = 0; 1638 ieee80211_scan_iterate(ic, waplist_cb, req); 1636 1639 1637 data->length = req .i;1638 memcpy(extra, &req .addr, req.i * sizeof(req.addr[0]));1640 data->length = req->i; 1641 memcpy(extra, &req->addr, req->i * sizeof(req->addr[0])); 1639 1642 data->flags = 1; /* signal quality present (sort of) */ 1640 memcpy(extra + req .i * sizeof(req.addr[0]), &req.qual,1641 req .i * sizeof(req.qual[0]));1643 memcpy(extra + req->i * sizeof(req->addr[0]), &req->qual, 1644 req->i * sizeof(req->qual[0])); 1642 1645 1646 kfree (req); 1647 1643 1648 return 0; 1644 1649 } 1645 1650 … … 3930 3935 struct ieee80211vap *vap = netdev_priv(dev); 3931 3936 struct ieee80211com *ic = vap->iv_ic; 3932 3937 struct ieee80211req_chaninfo *chans; 3933 u_int8_t reported[IEEE80211_CHAN_BYTES]; /* XXX stack usage? */3938 u_int8_t *reported = kzalloc(IEEE80211_CHAN_BYTES, GFP_KERNEL); 3934 3939 int i; 3935 3940 3936 3941 chans = kzalloc(sizeof(*chans), GFP_KERNEL); 3937 if (! chans)3942 if (!reported || !chans) 3938 3943 return -ENOMEM; 3939 3944 3940 3945 memset(&reported, 0, sizeof(reported)); … … 3967 3972 } 3968 3973 } 3969 3974 memcpy(extra, chans, sizeof(struct ieee80211req_chaninfo)); 3975 kfree(reported); 3970 3976 kfree(chans); 3971 3977 return 0; 3972 3978 } -
net80211/ieee80211_skb.c
old new 105 105 { 106 106 va_list args; 107 107 char skb_count[32] = { '\0' }; 108 char expanded_message[1024] = { '\0' }; 108 char *expanded_message = kmalloc(1024, GFP_KERNEL); 109 if (!expanded_message) { 110 return; 111 } 112 109 113 if (show_counter) { 110 114 #ifdef IEEE80211_DEBUG_REFCNT 111 115 snprintf(skb_count, … … 122 126 123 127 } 124 128 va_start(args, message); 125 vsnprintf(expanded_message, sizeof(expanded_message), message, args);129 vsnprintf(expanded_message, 1024, message, args); 126 130 printk(KERN_DEBUG "%s: %s%s:%d %s\n", 127 131 ((skb != NULL) ? DEV_NAME(skb->dev) : "none"), 128 132 skb_count, 129 133 func, line, 130 134 expanded_message); 135 kfree(expanded_message); 131 136 va_end(args); 132 137 } 133 138 -
net80211/ieee80211_linux.c
old new 288 288 static const char *tag = "STA-TRAFFIC-STAT"; 289 289 struct net_device *dev = vap->iv_dev; 290 290 union iwreq_data wreq; 291 char buf[1024]; 292 293 snprintf(buf, sizeof(buf), "%s\nmac=" MAC_FMT "\nrx_packets=%u\nrx_bytes=%llu\n" 291 char *buf = kmalloc(1024, GFP_KERNEL); 292 if (!buf) { 293 return; 294 } 295 snprintf(buf, 1024, "%s\nmac=" MAC_FMT "\nrx_packets=%u\nrx_bytes=%llu\n" 294 296 "tx_packets=%u\ntx_bytes=%llu\n", tag, 295 297 MAC_ADDR(ni->ni_macaddr), ni->ni_stats.ns_rx_data, 296 298 (unsigned long long)ni->ni_stats.ns_rx_bytes, … … 299 301 memset(&wreq, 0, sizeof(wreq)); 300 302 wreq.data.length = strlen(buf); 301 303 wireless_send_event(dev, IWEVCUSTOM, &wreq, buf); 304 kfree(buf); 302 305 } 303 306 304 307 void
