colder Thu Nov 6 01:07:05 2008 UTC
Modified files:
/php-src/ext/spl spl_directory.c
Log:
Fix #46421 (Take care about /)
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_directory.c?r1=1.171&r2=1.172&diff_format=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.171
php-src/ext/spl/spl_directory.c:1.172
--- php-src/ext/spl/spl_directory.c:1.171 Sun Nov 2 21:10:11 2008
+++ php-src/ext/spl/spl_directory.c Thu Nov 6 01:07:05 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.c,v 1.171 2008/11/02 21:10:11 felipe Exp $ */
+/* $Id: spl_directory.c,v 1.172 2008/11/06 01:07:05 colder Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -241,7 +241,7 @@
intern->_path_len = path_len;
intern->u.dir.dirp = php_stream_u_opendir(type, path, path_len,
options, NULL);
- if (intern->_path_len && IS_SLASH_AT(type, path, intern->_path_len-1)) {
+ if (intern->_path_len > 1 && IS_SLASH_AT(type, path,
intern->_path_len-1)) {
intern->_path = ezstrndup(type, path, --intern->_path_len);
} else {
intern->_path = ezstrndup(type, path, intern->_path_len);
@@ -278,7 +278,7 @@
zend_list_addref(Z_RESVAL_P(intern->u.file.zcontext));
}
- if (intern->file_name_len && IS_SLASH_AT(intern->file_name_type,
intern->file_name, intern->file_name_len-1)) {
+ if (intern->file_name_len > 1 && IS_SLASH_AT(intern->file_name_type,
intern->file_name, intern->file_name_len-1)) {
intern->file_name_len--;
}
@@ -396,7 +396,7 @@
if (type == IS_UNICODE) {
slash_pos.u = (p1.u > p2.u ? p1.u : p2.u);
- if (IS_SLASH_AT(type, intern->file_name,
intern->file_name_len-1)) {
+ if (IS_SLASH_AT(type, intern->file_name,
intern->file_name_len-1) && intern->file_name_len > 1) {
intern->file_name_len = slash_pos.u -
intern->file_name.u;
intern->file_name.u[intern->file_name_len] = 0;
continue;
@@ -404,7 +404,7 @@
intern->_path_len = slash_pos.u -
intern->file_name.u;
} else {
slash_pos.s = (p1.s > p2.s ? p1.s : p2.s);
- if (IS_SLASH_AT(type, intern->file_name,
intern->file_name_len-1)) {
+ if (IS_SLASH_AT(type, intern->file_name,
intern->file_name_len-1) && intern->file_name_len > 1) {
intern->file_name_len = slash_pos.s -
intern->file_name.s;
intern->file_name.s[intern->file_name_len] = 0;
continue;
@@ -2113,7 +2113,7 @@
if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) ==
SUCCESS) {
tmp_path_len = strlen(intern->u.file.stream->orig_path);
- if (tmp_path_len && IS_SLASH_AT(IS_STRING,
ZSTR(intern->u.file.stream->orig_path), tmp_path_len-1)) {
+ if (tmp_path_len > 1 && IS_SLASH_AT(IS_STRING,
ZSTR(intern->u.file.stream->orig_path), tmp_path_len-1)) {
tmp_path_len--;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php