From: Antony Dovgal Date: Tue, 16 May 2006 13:05:02 +0000 (+0000) Subject: fix #37395 (recursive mkdir() fails to create nonexistent directories in root dir) X-Git-Tag: php-5.2.0RC1~540 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a830a30f4eacd837fe543e7279382ebee4ed99b;p=php fix #37395 (recursive mkdir() fails to create nonexistent directories in root dir) --- diff --git a/NEWS b/NEWS index dcbfe0d181..1adaff85ae 100644 --- a/NEWS +++ b/NEWS @@ -38,7 +38,9 @@ PHP NEWS - Added pg_field_table() function. (Edin) - Added implementation of curl_multi_info_read(). (Brian) - Added RFC2397 (data: stream) support. (Marcus) -- Fixed Bug #37457 (Crash when an exception is thrown in accept() method of +- Fixed bug #37395 (recursive mkdir() fails to create nonexistent directories + in root dir). (Tony) +- Fixed bug #37457 (Crash when an exception is thrown in accept() method of FilterIterator). (Marcus) - Fixed bug #37416 (iterator_to_array() hides exceptions thrown in rewind() method). (Tony) diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index ac5ad825db..2180318fcf 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -1100,7 +1100,7 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, char *dir, int mod } else { /* find a top level directory we need to create */ - while ( (p = strrchr(buf + offset, DEFAULT_SLASH)) || (p = strrchr(buf, DEFAULT_SLASH)) ) { + while ( (p = strrchr(buf + offset, DEFAULT_SLASH)) || ( offset !=1 && (p = strrchr(buf, DEFAULT_SLASH))) ) { *p = '\0'; if (VCWD_STAT(buf, &sb) == 0) { *p = DEFAULT_SLASH;