diff --git a/ext/posix/posix.c b/ext/posix/posix.c index 9f85fa60add..1955c1d0727 100644 --- a/ext/posix/posix.c +++ b/ext/posix/posix.c @@ -766,6 +766,10 @@ PHP_FUNCTION(posix_access) } path = expand_filepath(filename, NULL TSRMLS_CC); + if (!path) { + POSIX_G(last_error) = EIO; + RETURN_FALSE; + } if (php_check_open_basedir_ex(path, 0 TSRMLS_CC)) { efree(path); diff --git a/ext/posix/tests/001.phpt b/ext/posix/tests/001.phpt new file mode 100644 index 00000000000..e6c629ce63a --- /dev/null +++ b/ext/posix/tests/001.phpt @@ -0,0 +1,12 @@ +--TEST-- +posix_access() with bogus paths +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(false)