]> granicus.if.org Git - php/commitdiff
- revert fix for #43327, it breaks system&co functions
authorPierre Joye <pajoye@php.net>
Thu, 20 Aug 2009 09:03:19 +0000 (09:03 +0000)
committerPierre Joye <pajoye@php.net>
Thu, 20 Aug 2009 09:03:19 +0000 (09:03 +0000)
NEWS
TSRM/tsrm_win32.c

diff --git a/NEWS b/NEWS
index 32335d6443a1bddbf39f2ba6cf7515813c1b5795..1d63cf3cf275a1b4c1784ff8a76c8fac2deacffb 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -142,8 +142,6 @@ PHP                                                                        NEWS
 - Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick)
 - Fixed bug #43510 (stream_get_meta_data() does not return same mode as used
   in fopen). (Jani)
-- Fixed #43327, wrong return value from mail(), if sendmail_path is wrong.
-  (Garrett)
 - Fixed bug #42434 (ImageLine w/ antialias = 1px shorter). (wojjie at gmail dot
   com, Kalle)
 - Fixed bug #38091 (Mail() does not use FQDN when sending SMTP helo). 
index a22f31a922bb363973a86348ecb59adb3e1e4bc2..53cfa6175bdc260c8b6b5af1d75aaac447916160 100644 (file)
@@ -312,6 +312,7 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
        HANDLE in, out;
        DWORD dwCreateFlags = 0;
        process_pair *proc;
+       char *cmd;
        TSRMLS_FETCH();
 
        security.nLength                                = sizeof(SECURITY_ATTRIBUTES);
@@ -347,9 +348,13 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
                dwCreateFlags |= CREATE_NO_WINDOW;
        }
 
-       if (!CreateProcess(NULL, command, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process)) {
+       cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c ")+2);
+       sprintf(cmd, "%s /c \"%s\"", TWG(comspec), command);
+
+       if (!CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process)) {
                return NULL;
        }
+       free(cmd);
 
        CloseHandle(process.hThread);
        proc = process_get(NULL TSRMLS_CC);