summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-05-16 13:05:02 +0000
committerAntony Dovgal <tony2001@php.net>2006-05-16 13:05:02 +0000
commit3a830a30f4eacd837fe543e7279382ebee4ed99b (patch)
tree67ef77ba2961c8262bf1bc42ae3a02c3959dae99
parent26a67b8925d991136a28dab1292e5983b8642b15 (diff)
downloadphp-git-3a830a30f4eacd837fe543e7279382ebee4ed99b.tar.gz
fix #37395 (recursive mkdir() fails to create nonexistent directories in root dir)
-rw-r--r--NEWS4
-rw-r--r--main/streams/plain_wrapper.c2
2 files changed, 4 insertions, 2 deletions
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;