mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-24 05:42:59 +02:00
broadcom-wl: fix memory corruption and leakage on remove (patch from #9576 by George Kashperko)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27348 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
83366afdc5
commit
72bfd39048
31
package/broadcom-wl/patches/006-fix-mem-leak-on-unload.patch
Normal file
31
package/broadcom-wl/patches/006-fix-mem-leak-on-unload.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From: George Kashperko <george@znau.edu.ua>
|
||||
|
||||
Release nvram variables buffer.
|
||||
Prevent block reserved by alloc_etherdev from being freed.
|
||||
Signed-off-by: George Kashperko <george@znau.edu.ua>
|
||||
---
|
||||
---
|
||||
--- a/driver/siutils.c
|
||||
+++ b/driver/siutils.c
|
||||
@@ -647,7 +647,10 @@ si_detach(si_t *sih)
|
||||
#if !defined(BCMBUSTYPE) || (BCMBUSTYPE == SI_BUS)
|
||||
if (sii != &ksii)
|
||||
#endif /* !BCMBUSTYPE || (BCMBUSTYPE == SI_BUS) */
|
||||
- MFREE(sii->osh, sii, sizeof(si_info_t));
|
||||
+ do {
|
||||
+ MFREE(sii->osh, sii, sizeof(si_info_t));
|
||||
+ nvram_exit((void *)&(sii->pub));
|
||||
+ } while (0);
|
||||
}
|
||||
|
||||
void *
|
||||
--- a/driver/wl_linux.c
|
||||
+++ b/driver/wl_linux.c
|
||||
@@ -1477,7 +1477,6 @@ wl_free_if(wl_info_t *wl, wl_if_t *wlif)
|
||||
free_netdev(wlif->dev);
|
||||
#endif
|
||||
}
|
||||
- MFREE(wl->osh, wlif, sizeof(wl_if_t));
|
||||
}
|
||||
|
||||
#ifdef AP
|
Loading…
Reference in New Issue
Block a user