]> granicus.if.org Git - php/commitdiff
- Merge: #49847
authorPierre Joye <pajoye@php.net>
Thu, 15 Oct 2009 21:36:42 +0000 (21:36 +0000)
committerPierre Joye <pajoye@php.net>
Thu, 15 Oct 2009 21:36:42 +0000 (21:36 +0000)
ext/standard/exec.c

index 65fe95115f15be2ed3c1bb7f1fdf4baa425b1d81..a460357ed229b7209bc58c58ee8cedd0731ce8b6 100644 (file)
@@ -62,7 +62,7 @@ PHPAPI int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_
 {
        FILE *fp;
        char *buf, *tmp=NULL;
-       int l, pclose_return;
+       int l = 0, pclose_return;
        char *cmd_p, *b, *c, *d=NULL;
        php_stream *stream;
        size_t buflen, bufl = 0;
@@ -157,13 +157,16 @@ PHPAPI int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_
                }
                if (bufl) {
                        /* strip trailing whitespaces if we have not done so already */
-                       if (type != 2) {
+                       if ((type == 2 && bufl && !l) || type != 2) {
                                l = bufl;
                                while (l-- && isspace(((unsigned char *)buf)[l]));
                                if (l != (int)(bufl - 1)) {
                                        bufl = l + 1;
                                        buf[bufl] = '\0';
                                }
+                               if (type == 2) {
+                                       add_next_index_stringl(array, buf, bufl, 1);
+                               }
                        }
 
                        /* Return last line from the shell command */