Hang beneath PluginProcessProxy::createPropertyListFile() when using a thin build
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Oct 2011 21:34:38 +0000 (21:34 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Oct 2011 21:34:38 +0000 (21:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=69960

Reviewed by Adam Roben.

* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::createPropertyListFile): Check for any non-zero return value
from posix_spawn() rather than for a negative return value. The old, incorrect check, caused
this function to hang in waitpid() after failing to spawn a plug-in process for a 32-bit plug-in
when WebKit2 was built for 64-bit only.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97304 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/Plugins/mac/PluginProcessProxyMac.mm

index 2b588a70e92102f436c0b32a9c8dbf697d253d19..2f2cc1f88ef8bac3a810b624f7d551acd0530ff3 100644 (file)
@@ -1,3 +1,16 @@
+2011-10-12  Dan Bernstein  <mitz@apple.com>
+
+        Hang beneath PluginProcessProxy::createPropertyListFile() when using a thin build
+        https://bugs.webkit.org/show_bug.cgi?id=69960
+
+        Reviewed by Adam Roben.
+
+        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
+        (WebKit::PluginProcessProxy::createPropertyListFile): Check for any non-zero return value
+        from posix_spawn() rather than for a negative return value. The old, incorrect check, caused
+        this function to hang in waitpid() after failing to spawn a plug-in process for a 32-bit plug-in
+        when WebKit2 was built for 64-bit only.
+
 2011-10-12  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
 
         [Qt][WK2] Move qweberror* out of API/qt
index cd1c3ad160cd2b5fa1e16bc193a22f23c83d67cf..b072417fea283f9392a55dd99ac330fe7ac50300 100644 (file)
@@ -97,7 +97,7 @@ bool PluginProcessProxy::createPropertyListFile(const PluginModuleInfo& plugin)
     int result = posix_spawn(&pid, args[0], 0, &attr, const_cast<char* const*>(args), environmentVariables.environmentPointer());
     posix_spawnattr_destroy(&attr);
 
-    if (result < 0)
+    if (result)
         return false;
     int status;
     if (waitpid(pid, &status, 0) < 0)