diff options
| -rw-r--r-- | ext/standard/dir.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 894578b2d0..86f8b2b08e 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -151,6 +151,10 @@ static void _php_do_opendir(INTERNAL_FUNCTION_PARAMETERS, int createobject) RETURN_FALSE; } + if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(arg), NULL, CHECKUID_ALLOW_ONLY_DIR))) { + RETURN_FALSE; + } + dirp = emalloc(sizeof(php_dir)); dirp->dir = VCWD_OPENDIR(Z_STRVAL_PP(arg)); |
