diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-02-16 10:13:02 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-02-16 10:13:02 +0100 |
| commit | fd5a0b31640419ca63d1ddeaffd6d3cf2a741814 (patch) | |
| tree | bfd17d84c5181d7b98d7d66f56573f4fc897e31c /ext/standard/dir.c | |
| parent | 01fcdff3849c3691d9aaeaab735846ab6d8895ca (diff) | |
| download | php-upstream/5.3.5.tar.gz | |
Imported Upstream version 5.3.5upstream/5.3.5
Diffstat (limited to 'ext/standard/dir.c')
| -rw-r--r-- | ext/standard/dir.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/ext/standard/dir.c b/ext/standard/dir.c index ddf651a11..4acd8913f 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dir.c 300764 2010-06-26 16:03:39Z felipe $ */ +/* $Id: dir.c 305507 2010-11-18 15:22:22Z pajoye $ */ /* {{{ includes/startup/misc */ @@ -325,6 +325,10 @@ PHP_FUNCTION(chdir) RETURN_FALSE; } + if (strlen(str) != str_len) { + RETURN_FALSE; + } + if ((PG(safe_mode) && !php_checkuid(str, NULL, CHECKUID_CHECK_FILE_AND_DIR)) || php_check_open_basedir(str TSRMLS_CC)) { RETURN_FALSE; } @@ -436,6 +440,10 @@ PHP_FUNCTION(glob) return; } + if (strlen(pattern) != pattern_len) { + RETURN_FALSE; + } + if (pattern_len >= MAXPATHLEN) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pattern exceeds the maximum allowed length of %d characters", MAXPATHLEN); RETURN_FALSE; @@ -557,6 +565,10 @@ PHP_FUNCTION(scandir) return; } + if (strlen(dirn) != dirn_len) { + RETURN_FALSE; + } + if (dirn_len < 1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Directory name cannot be empty"); RETURN_FALSE; |
