Initialize remaining "ioc" fields, and fix logic so socket "close" call is actually executed (based on wl_ioctl from trunk broadcom-wl driver).
Signed-off-by: Nathan Hintz <[email protected]> Index: backfire/package/broadcom-wl/src/wlc/ioctl.c =================================================================== --- backfire/package/broadcom-wl/src/wlc/ioctl.c (revision 29492) +++ backfire/package/broadcom-wl/src/wlc/ioctl.c (working copy) @@ -48,9 +48,17 @@ ioc.cmd = cmd; ioc.buf = buf; ioc.len = len; + + /* initializing the remaining fields */ + ioc.set = FALSE; + ioc.used = 0; + ioc.needed = 0; + strncpy(ifr.ifr_name, name, IFNAMSIZ); ifr.ifr_data = (caddr_t) &ioc; if ((ret = ioctl(s, SIOCDEVPRIVATE, &ifr)) < 0) + if (cmd != WLC_GET_MAGIC) + perror(ifr.ifr_name); /* cleanup */ close(s); Index: backfire/package/broadcom-wl/src/wlcompat/wlcompat.c =================================================================== --- backfire/package/broadcom-wl/src/wlcompat/wlcompat.c (revision 29492) +++ backfire/package/broadcom-wl/src/wlcompat/wlcompat.c (working copy) @@ -82,6 +82,9 @@ ioc.cmd = cmd; ioc.buf = buf; ioc.len = len; + ioc.set = FALSE; + ioc.used = 0; + ioc.needed = 0; strncpy(ifr.ifr_name, dev->name, IFNAMSIZ); ifr.ifr_data = (caddr_t) &ioc; set_fs(KERNEL_DS); _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
