]> granicus.if.org Git - php/commitdiff
Fix #27865; don't dup STDIN, STDOUT or STDERR when running under CLI.
authorWez Furlong <wez@php.net>
Mon, 19 Apr 2004 17:41:39 +0000 (17:41 +0000)
committerWez Furlong <wez@php.net>
Mon, 19 Apr 2004 17:41:39 +0000 (17:41 +0000)
NEWS
ext/standard/php_fopen_wrapper.c

diff --git a/NEWS b/NEWS
index 56f491f31fbad9b2978c2caab46ca75488c685da..3db0e5f66635682b6e15eecedce7b07853c43242 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ PHP                                                                        NEWS
   (Dmitry)
 - Fixed bug #27997 (SPL: Crash with getInnerIterator()). (Marcus)
 - Fixed bug #27928 (sqlite incorrectly handles invalid filenames). (Ilia)
+- Fixed bug #27865 (STDIN, STDOUT, STDERR are dup()d under CLI). (Wez)
 - Fixed bug #27821 (xml_parse() segfaults when xml_set_object() is called from
   class method). (Andi, Rob)
 - Fixed bug #27742 (WDSL SOAP Parsing Schema bug). (Dmitry)
index ccf256015aaf415c4e873472d952d0d27f4011bf..4e535943262a8ab39f44d6078e0188a689e29599 100644 (file)
@@ -166,11 +166,11 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, char *path, ch
        }  
        
        if (!strcasecmp(path, "stdin")) {
-               fd = dup(STDIN_FILENO);
+               fd = !strcmp(sapi_module.name, "cli") ? STDIN_FILENO : dup(STDIN_FILENO);
        } else if (!strcasecmp(path, "stdout")) {
-               fd = dup(STDOUT_FILENO);
+               fd = !strcmp(sapi_module.name, "cli") ? STDOUT_FILENO : dup(STDOUT_FILENO);
        } else if (!strcasecmp(path, "stderr")) {
-               fd = dup(STDERR_FILENO);
+               fd = !strcmp(sapi_module.name, "cli") ? STDERR_FILENO : dup(STDERR_FILENO);
        } else if (!strncasecmp(path, "filter/", 7)) {
                /* Save time/memory when chain isn't specified */
                if (strchr(mode, 'r') || strchr(mode, '+')) {