summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/dir.c4
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));