Title: [194005] trunk/Source/_javascript_Core
Revision
194005
Author
joep...@webkit.org
Date
2015-12-11 23:44:07 -0800 (Fri, 11 Dec 2015)

Log Message

Web Inspector: Too many derefs when RemoteInspectorXPCConnection fails to validate connection
https://bugs.webkit.org/show_bug.cgi?id=152213

Rubber-stamped by Ryosuke Niwa.

* inspector/remote/RemoteInspectorXPCConnection.mm:
(Inspector::RemoteInspectorXPCConnection::handleEvent):
We should just close the XPC connection triggering XPC_ERROR_CONNECTION_INVALID
which will then graceful teardown the connection as expected.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (194004 => 194005)


--- trunk/Source/_javascript_Core/ChangeLog	2015-12-12 06:58:15 UTC (rev 194004)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-12-12 07:44:07 UTC (rev 194005)
@@ -1,3 +1,15 @@
+2015-12-11  Joseph Pecoraro  <pecor...@apple.com>
+
+        Web Inspector: Too many derefs when RemoteInspectorXPCConnection fails to validate connection
+        https://bugs.webkit.org/show_bug.cgi?id=152213
+
+        Rubber-stamped by Ryosuke Niwa.
+
+        * inspector/remote/RemoteInspectorXPCConnection.mm:
+        (Inspector::RemoteInspectorXPCConnection::handleEvent):
+        We should just close the XPC connection triggering XPC_ERROR_CONNECTION_INVALID
+        which will then graceful teardown the connection as expected.
+
 2015-12-11  Benjamin Poulain  <bpoul...@apple.com>
 
         [JSC] Add Floating Point Abs() to B3

Modified: trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorXPCConnection.mm (194004 => 194005)


--- trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorXPCConnection.mm	2015-12-12 06:58:15 UTC (rev 194004)
+++ trunk/Source/_javascript_Core/inspector/remote/RemoteInspectorXPCConnection.mm	2015-12-12 07:44:07 UTC (rev 194005)
@@ -173,16 +173,9 @@
         audit_token_t token;
         xpc_connection_get_audit_token(m_connection, &token);
         if (!auditTokenHasEntitlement(token, @"com.apple.private.webinspector.webinspectord")) {
-            {
-                std::lock_guard<Lock> lock(m_mutex);
-                if (m_client)
-                    m_client->xpcConnectionFailed(this);
-
-                m_closed = true;
-                m_client = nullptr;
-                closeOnQueue();
-            }
-            deref();
+            std::lock_guard<Lock> lock(m_mutex);
+            // This will trigger one last XPC_ERROR_CONNECTION_INVALID event on the queue and deref us.
+            closeOnQueue();
             return;
         }
         m_validated = true;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to