summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-08-06 21:53:13 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-08-06 21:53:13 +0200
commit7c8467562d4bc6f04047c0a32a91c95042f60f34 (patch)
tree6eb43c29e0ee604fe91f48e9e9cd17cae7787583
parent11274f53e7fb9d669d74c23aa7883f5f04d92094 (diff)
downloadphp-git-7c8467562d4bc6f04047c0a32a91c95042f60f34.tar.gz
Revert "Explicitly validate popen mode"
This reverts commit ab36540bddb63139c3da9a9da5e5feacdf7bf7bf. Causes a test failure on Windows.
-rw-r--r--ext/standard/file.c8
-rw-r--r--ext/standard/tests/file/popen_pclose_error.phpt2
2 files changed, 1 insertions, 9 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 88ffba8102..98578376b0 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -930,18 +930,10 @@ PHP_FUNCTION(popen)
char *z = memchr(posix_mode, 'b', mode_len);
if (z) {
memmove(z, z + 1, mode_len - (z - posix_mode));
- mode_len--;
}
}
#endif
- /* Musl only partially validates the mode. Manually check it to ensure consistent behavior. */
- if (mode_len != 1 || (*posix_mode != 'r' && *posix_mode != 'w')) {
- php_error_docref2(NULL, command, posix_mode, E_WARNING, "Invalid mode");
- efree(posix_mode);
- RETURN_FALSE;
- }
-
fp = VCWD_POPEN(command, posix_mode);
if (!fp) {
php_error_docref2(NULL, command, posix_mode, E_WARNING, "%s", strerror(errno));
diff --git a/ext/standard/tests/file/popen_pclose_error.phpt b/ext/standard/tests/file/popen_pclose_error.phpt
index 0713280870..2f05e7788d 100644
--- a/ext/standard/tests/file/popen_pclose_error.phpt
+++ b/ext/standard/tests/file/popen_pclose_error.phpt
@@ -22,7 +22,7 @@ unlink($file_path."/popen.tmp");
--EXPECTF--
*** Testing for error conditions ***
-Warning: popen(abc.txt,rw): Invalid mode in %s on line %d
+Warning: popen(abc.txt,rw): %s on line %d
bool(false)
--- Done ---