]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Fix memory leak on rfkill init error path
authorJouni Malinen <jouni.malinen@atheros.com>
Tue, 25 May 2010 09:06:25 +0000 (12:06 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 25 May 2010 09:06:25 +0000 (12:06 +0300)
src/drivers/driver_nl80211.c
src/drivers/driver_wext.c

index 136ca11c973edb049568d8b5c9dc638cebe79579..2b7462bea7ce702361742d359547c343c19418ae 100644 (file)
@@ -1426,8 +1426,10 @@ static void * wpa_driver_nl80211_init(void *ctx, const char *ifname)
        rcfg->blocked_cb = wpa_driver_nl80211_rfkill_blocked;
        rcfg->unblocked_cb = wpa_driver_nl80211_rfkill_unblocked;
        drv->rfkill = rfkill_init(rcfg);
-       if (drv->rfkill == NULL)
+       if (drv->rfkill == NULL) {
                wpa_printf(MSG_DEBUG, "nl80211: RFKILL status not available");
+               os_free(rcfg);
+       }
 
        if (wpa_driver_nl80211_finish_drv_init(drv))
                goto failed;
index ef3a30c3b06e7f4a3204bf5b321543a822d0abd3..222378378798d06c97e7e7cf32a0a25448a781a7 100644 (file)
@@ -762,8 +762,10 @@ void * wpa_driver_wext_init(void *ctx, const char *ifname)
        rcfg->blocked_cb = wpa_driver_wext_rfkill_blocked;
        rcfg->unblocked_cb = wpa_driver_wext_rfkill_unblocked;
        drv->rfkill = rfkill_init(rcfg);
-       if (drv->rfkill == NULL)
+       if (drv->rfkill == NULL) {
                wpa_printf(MSG_DEBUG, "WEXT: RFKILL status not available");
+               os_free(rcfg);
+       }
 
        drv->mlme_sock = -1;