Title: [233788] trunk/Source/WebKit
Revision
233788
Author
cdu...@apple.com
Date
2018-07-12 17:03:56 -0700 (Thu, 12 Jul 2018)

Log Message

[Cocoa] Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port
https://bugs.webkit.org/show_bug.cgi?id=187625

Reviewed by Youenn Fablet.

Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port to help
debug <rdar://problem/41995022>.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (233787 => 233788)


--- trunk/Source/WebKit/ChangeLog	2018-07-12 23:46:17 UTC (rev 233787)
+++ trunk/Source/WebKit/ChangeLog	2018-07-13 00:03:56 UTC (rev 233788)
@@ -1,5 +1,20 @@
 2018-07-12  Chris Dumez  <cdu...@apple.com>
 
+        [Cocoa] Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port
+        https://bugs.webkit.org/show_bug.cgi?id=187625
+
+        Reviewed by Youenn Fablet.
+
+        Make sure NetworkProcess::createNetworkConnectionToWebProcess() returns a valid mach port to help
+        debug <rdar://problem/41995022>.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):
+
+2018-07-12  Chris Dumez  <cdu...@apple.com>
+
         PingLoad does not need to ref the NetworkConnectionToWebProcess
         https://bugs.webkit.org/show_bug.cgi?id=187624
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (233787 => 233788)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2018-07-12 23:46:17 UTC (rev 233787)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2018-07-13 00:03:56 UTC (rev 233788)
@@ -323,9 +323,13 @@
     mach_port_t listeningPort = MACH_PORT_NULL;
     auto kr = mach_port_allocate(mach_task_self(), MACH_PORT_RIGHT_RECEIVE, &listeningPort);
     if (kr != KERN_SUCCESS) {
-        LOG_ERROR("Could not allocate mach port, error %x", kr);
+        RELEASE_LOG_ERROR(Process, "NetworkProcess::createNetworkConnectionToWebProcess: Could not allocate mach port, error %x", kr);
         CRASH();
     }
+    if (!MACH_PORT_VALID(listeningPort)) {
+        RELEASE_LOG_ERROR(Process, "NetworkProcess::createNetworkConnectionToWebProcess: Could not allocate mach port, returned port was invalid");
+        CRASH();
+    }
 
     // Create a listening connection.
     auto connection = NetworkConnectionToWebProcess::create(IPC::Connection::Identifier(listeningPort));

Modified: trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (233787 => 233788)


--- trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2018-07-12 23:46:17 UTC (rev 233787)
+++ trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp	2018-07-13 00:03:56 UTC (rev 233788)
@@ -284,6 +284,7 @@
 #if USE(UNIX_DOMAIN_SOCKETS) || OS(WINDOWS)
     reply(connectionIdentifier);
 #elif OS(DARWIN)
+    MESSAGE_CHECK(MACH_PORT_VALID(connectionIdentifier.port()));
     reply(IPC::Attachment(connectionIdentifier.port(), MACH_MSG_TYPE_MOVE_SEND));
 #else
     notImplemented();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to