[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andersca at apple.com andersca at apple.com
Wed Dec 22 13:56:11 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f073964bf3e26c4bc001fb666d8caa0b5cff72f1
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 30 00:45:31 2010 +0000

    Calling Connection::send/sendSync from Connection::Client::didClose should always fail
    https://bugs.webkit.org/show_bug.cgi?id=46859
    <rdar://problem/8212583>
    
    Reviewed by Simon Fraser.
    
    * Platform/CoreIPC/Connection.cpp:
    (CoreIPC::Connection::dispatchConnectionDidClose):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 91935e7..fbe0a99 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,14 @@
+2010-09-29  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        Calling Connection::send/sendSync from Connection::Client::didClose should always fail
+        https://bugs.webkit.org/show_bug.cgi?id=46859
+        <rdar://problem/8212583>
+
+        * Platform/CoreIPC/Connection.cpp:
+        (CoreIPC::Connection::dispatchConnectionDidClose):
+
 2010-09-29  Simon Fraser  <simon.fraser at apple.com>
 
         Reviewed by Anders Carlsson.
diff --git a/WebKit2/Platform/CoreIPC/Connection.cpp b/WebKit2/Platform/CoreIPC/Connection.cpp
index def7c41..f9ed097 100644
--- a/WebKit2/Platform/CoreIPC/Connection.cpp
+++ b/WebKit2/Platform/CoreIPC/Connection.cpp
@@ -262,10 +262,14 @@ void Connection::dispatchConnectionDidClose()
     if (!m_client)
         return;
 
-    m_client->didClose(this);
-    
-    // Reset the client.
+
+    // Because we define a connection as being "valid" based on wheter it has a null client, we null out
+    // the client before calling didClose here. Otherwise, sendSync will try to send a message to the connection and
+    // will then wait indefinitely for a reply.
+    Client* client = m_client;
     m_client = 0;
+    
+    client->didClose(this);
 }
 
 bool Connection::canSendOutgoingMessages() const

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list