Fix a segfault in wpa_supplicant_deinit
authorHelmut Schaa <helmut.schaa@googlemail.com>
Wed, 4 Feb 2009 19:55:12 +0000 (21:55 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 4 Feb 2009 19:55:12 +0000 (21:55 +0200)
If wpa_supplicant is started with -u but the DBus service is already
registered wpa_supplicant will bail out. However, it will segfault
in wpa_supplicant_deinit because global->drv_priv wasn't allocated
yet.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
wpa_supplicant/wpa_supplicant.c

index be40654..26dec1b 100644 (file)
@@ -2199,7 +2199,7 @@ void wpa_supplicant_deinit(struct wpa_global *global)
 
        eap_peer_unregister_methods();
 
-       for (i = 0; wpa_supplicant_drivers[i]; i++) {
+       for (i = 0; wpa_supplicant_drivers[i] && global->drv_priv; i++) {
                if (!global->drv_priv[i])
                        continue;
                wpa_supplicant_drivers[i]->global_deinit(global->drv_priv[i]);