Fix Valgrind Invalid Read error while removing gsupplicant interface
authorLeena Gunda <leena.gunda@wipro.com>
Wed, 29 Dec 2010 05:55:14 +0000 (11:25 +0530)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 29 Dec 2010 07:08:59 +0000 (23:08 -0800)
gsupplicant/supplicant.c

index 35a0e5a..8452656 100644 (file)
@@ -1986,12 +1986,15 @@ static void interface_remove_result(const char *error,
                goto done;
        }
 
-       g_hash_table_remove(interface_table, data->interface->path);
+       /*
+        * The gsupplicant interface is already freed by the InterfaceRemoved
+        * signal callback. Simply invoke the interface_data callback.
+        */
        err = 0;
 
 done:
        if (data->callback != NULL)
-               data->callback(err, data->interface, data->user_data);
+               data->callback(err, NULL, data->user_data);
 
        dbus_free(data);
 }