]> granicus.if.org Git - php/commitdiff
MFH: Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag).
authorIlia Alshanetsky <iliaa@php.net>
Mon, 6 Dec 2004 23:31:58 +0000 (23:31 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 6 Dec 2004 23:31:58 +0000 (23:31 +0000)
NEWS
ext/standard/file.c

diff --git a/NEWS b/NEWS
index df4c223509d4c9a9f45a11c7dc105bde491909e9..a55590a1d02abc73772d7dea2991c6c9cdc08c07 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP 4                                                                      NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Nov 2004, Version 4.3.10
+- Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag).
 
 23 Nov 2004, Version 4.3.10RC1
 - Added the %F modifier to *printf to render a non-locale-aware representation
index 435d61dfafcc6b031d26062cf350433d4440b6da..fdbe22568c1749b759be2f04c00254a56e21bf9e 100644 (file)
@@ -1198,6 +1198,14 @@ PHP_FUNCTION(popen)
        convert_to_string_ex(arg1);
        convert_to_string_ex(arg2);
        p = estrndup(Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2));
+#ifndef PHP_WIN32
+       {
+               char *z = memchr(p, 'b', Z_STRLEN_PP(arg2));
+               if (z) {
+                       memmove(p + (z - p), z + 1, Z_STRLEN_PP(arg2) - (z - p));
+               }
+       }
+#endif
        if (PG(safe_mode)){
                b = strchr(Z_STRVAL_PP(arg1), ' ');
                if (!b) {