[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

xan at webkit.org xan at webkit.org
Thu Oct 29 20:35:33 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit d4dff1472138ecf22edce0d77e5db9f0d80a73bb
Author: xan at webkit.org <xan at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Sep 29 05:16:58 2009 +0000

    2009-09-29  Xan Lopez  <xlopez at igalia.com>
    
            Rubber-stamped by Eric Seidel.
    
            [Gtk] Crash when saving a password
            https://bugs.webkit.org/show_bug.cgi?id=28070
    
            Disconnect the 'got-headers' callback when we are done with
            it. The signal can be emitted more than once if the message is
            retransmitted, but each time that happens authData is created
            again and a new callback connected, so we have to get rid of the
            old one (which will crash because we free authData).
    
            * webkit/webkitsoupauthdialog.c:
            (save_password_callback):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48858 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index 107bf03..bf79e70 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,19 @@
+2009-09-29  Xan Lopez  <xlopez at igalia.com>
+
+        Rubber-stamped by Eric Seidel.
+
+        [Gtk] Crash when saving a password
+        https://bugs.webkit.org/show_bug.cgi?id=28070
+
+        Disconnect the 'got-headers' callback when we are done with
+        it. The signal can be emitted more than once if the message is
+        retransmitted, but each time that happens authData is created
+        again and a new callback connected, so we have to get rid of the
+        old one (which will crash because we free authData).
+
+        * webkit/webkitsoupauthdialog.c:
+        (save_password_callback):
+
 2009-09-25  Gustavo Noronha Silva  <gustavo.noronha at collabora.co.uk>
 
         Reviewed by Xan Lopez.
diff --git a/WebKit/gtk/webkit/webkitsoupauthdialog.c b/WebKit/gtk/webkit/webkitsoupauthdialog.c
index 5ff2038..538dbfa 100644
--- a/WebKit/gtk/webkit/webkitsoupauthdialog.c
+++ b/WebKit/gtk/webkit/webkitsoupauthdialog.c
@@ -107,6 +107,11 @@ static void save_password_callback(SoupMessage* msg, WebKitAuthData* authData)
     if (msg->status_code != 401 && msg->status_code < 500)
         soup_auth_save_password(authData->auth, authData->username, authData->password);
 
+    /* Disconnect the callback. If the authentication succeeded we are
+     * done, and if it failed we'll create a new authData and we'll
+     * connect to 'got-headers' again in response_callback */
+    g_signal_handlers_disconnect_by_func(msg, save_password_callback, authData);
+
     free_authData(authData);
 }
 #endif

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list