Fix memory corruption in SoupPasswordManagerGNOME
authorDan Winship <danw@gnome.org>
Tue, 15 Dec 2009 17:19:59 +0000 (18:19 +0100)
committerDan Winship <danw@gnome.org>
Tue, 15 Dec 2009 17:19:59 +0000 (18:19 +0100)
Debugged by Gustavo Noronha Silva,
https://bugzilla.gnome.org/show_bug.cgi?id=595554

libsoup/soup-password-manager-gnome.c

index d376191..ae65564 100644 (file)
@@ -113,6 +113,13 @@ update_auth_for_passwords (SoupAuth *auth, SoupMessage *msg,
                passwords = passwords->next;
        }
 
+       uri = g_object_get_data (G_OBJECT (auth),
+                                "SoupPasswordManagerGNOME-save_password-uri");
+       if (uri) {
+               g_signal_handlers_disconnect_by_func (auth, async_save_password, uri);
+               g_signal_handlers_disconnect_by_func (auth, sync_save_password, uri);
+       }
+
        uri = soup_uri_copy (soup_message_get_uri (msg));
        g_signal_connect (auth, "save_password",
                          G_CALLBACK (async ? async_save_password : sync_save_password),