]> granicus.if.org Git - php/commitdiff
port proc_open to windows (untested yet)
authorPierre Joye <pierre.php@gmail.com>
Tue, 13 May 2014 04:50:20 +0000 (06:50 +0200)
committerPierre Joye <pierre.php@gmail.com>
Tue, 13 May 2014 04:50:20 +0000 (06:50 +0200)
ext/standard/proc_open.c

index 39dab2021a8746aaba574395ce35281d7ccd6e8b..4185da9df6bbd57321439da6ef493a383e16c18e 100644 (file)
@@ -469,16 +469,16 @@ PHP_FUNCTION(proc_open)
 
 #ifdef PHP_WIN32
        if (other_options) {
-               zval **item;
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_P(other_options), "suppress_errors", sizeof("suppress_errors"), (void**)&item)) {
-                       if ((Z_TYPE_PP(item) == IS_BOOL || Z_TYPE_PP(item) == IS_LONG) &&
-                           Z_LVAL_PP(item)) {
+               zval *item = zend_hash_str_find(Z_ARRVAL_P(other_options), "suppress_errors", sizeof("suppress_errors"));
+               if (item != NULL) {
+                       if (Z_TYPE_P(item) == IS_TRUE || ((Z_TYPE_P(item) == IS_LONG) && Z_LVAL_P(item))) {
                                suppress_errors = 1;
                        }
                }
-               if (SUCCESS == zend_hash_find(Z_ARRVAL_P(other_options), "bypass_shell", sizeof("bypass_shell"), (void**)&item)) {
-                       if ((Z_TYPE_PP(item) == IS_BOOL || Z_TYPE_PP(item) == IS_LONG) &&
-                           Z_LVAL_PP(item)) {
+
+               item = zend_hash_str_find(Z_ARRVAL_P(other_options), "bypass_shell", sizeof("bypass_shell"));
+               if (item != NULL) {
+                       if (Z_TYPE_P(item) == IS_TRUE || ((Z_TYPE_P(item) == IS_LONG) && Z_LVAL_P(item))) {
                                bypass_shell = 1;
                        }
                }
@@ -626,7 +626,7 @@ PHP_FUNCTION(proc_open)
 
                                /* simulate the append mode by fseeking to the end of the file
                                this introduces a potential race-condition, but it is the best we can do, though */
-                               if (strchr(Z_STRVAL_PP(zmode), 'a')) {
+                               if (strchr(Z_STRVAL_P(zmode), 'a')) {
                                        SetFilePointer(descriptors[ndesc].childend, 0, NULL, FILE_END);
                                }
 #else