summaryrefslogtreecommitdiffstats
path: root/package/wpa_supplicant/patches/driver_broadcom-memleak.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/wpa_supplicant/patches/driver_broadcom-memleak.patch')
-rw-r--r--package/wpa_supplicant/patches/driver_broadcom-memleak.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/package/wpa_supplicant/patches/driver_broadcom-memleak.patch b/package/wpa_supplicant/patches/driver_broadcom-memleak.patch
new file mode 100644
index 000000000..3d295f5e5
--- /dev/null
+++ b/package/wpa_supplicant/patches/driver_broadcom-memleak.patch
@@ -0,0 +1,36 @@
+Fixes some memory leaks in driver_broadom.c
+
+ http://openwrt.org/forum/viewtopic.php?pid=8217#p8217
+
+Thanks Greg (framer99)
+
+--- wpa_supplicant-0.3.8/driver_broadcom.c.orig 2005-01-22 05:35:13.000000000 +0100
++++ wpa_supplicant-0.3.8/driver_broadcom.c 2005-06-10 08:50:14.000000000 +0200
+@@ -289,6 +289,7 @@
+ wwh->type);
+ break;
+ }
++ free(data.assoc_info.resp_ies);
+ }
+
+ static void * wpa_driver_broadcom_init(void *ctx, const char *ifname)
+@@ -449,8 +450,10 @@
+ wsr->count = 0;
+
+ if (broadcom_ioctl(drv, WLC_SCAN_RESULTS, buf, WLC_IOCTL_MAXLEN) <
+- 0)
++ 0) {
++ free(buf);
+ return -1;
++ }
+
+ memset(results, 0, max_size * sizeof(struct wpa_scan_result));
+
+@@ -490,6 +493,7 @@
+ wpa_printf(MSG_MSGDUMP, "Received %d bytes of scan results (%d BSSes)",
+ wsr->buflen, ap_num);
+
++ free(buf);
+ return ap_num;
+ }
+