1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
--- kernel/drivers/net/wireless/bcm4329/dhd_linux.c.orig 2011-12-21 19:54:24.884526348 +0100
+++ kernel/drivers/net/wireless/bcm4329/dhd_linux.c 2011-12-21 18:55:18.974476355 +0100
@@ -1226,14 +1226,14 @@
struct sk_buff *skb;
uchar *eth;
uint len;
- void * data, *pnext, *save_pktbuf;
+ void * data, *pnext/*max , *save_pktbuf*/;
int i;
dhd_if_t *ifp;
wl_event_msg_t event;
DHD_TRACE(("%s: Enter\n", __FUNCTION__));
- save_pktbuf = pktbuf;
+/*max save_pktbuf = pktbuf;*/
for (i = 0; pktbuf && i < numpkt; i++, pktbuf = pnext) {
@@ -1904,6 +1904,13 @@ dhd_open(struct net_device *net)
ifidx = dhd_net2idx(dhd, net);
DHD_TRACE(("%s: ifidx %d\n", __FUNCTION__, ifidx));
+//max
+ if (ifidx < 0 || ifidx >= DHD_MAX_IFS) {
+ DHD_ERROR(("%s: Error: error ifidx out of range\n", __FUNCTION__));
+ return -1;
+ }
+//end max
+
if ((dhd->iflist[ifidx]) && (dhd->iflist[ifidx]->state == WLC_E_IF_DEL)) {
DHD_ERROR(("%s: Error: called when IF already deleted\n", __FUNCTION__));
return -1;
|