From 87d6f497f71edc4a1f1b6c42cc46045d3bfc3017 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Fri, 24 Jun 2005 02:04:19 +0000 Subject: [PATCH] Likely fix for bug #33140 --- main/streams/plain_wrapper.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 7bc149fa568..40af58b9466 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -1079,18 +1079,24 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, char *dir, int mod char *e, *buf; struct stat sb; int dir_len = strlen(dir); + int offset = 0; buf = estrndup(dir, dir_len); e = buf + dir_len; + if ((p = memchr(buf, DEFAULT_SLASH, dir_len))) { + offset = p - buf + 1; + } + /* find a top level directory we need to create */ - while ((p = strrchr(buf, DEFAULT_SLASH))) { + while ((p = strrchr(buf + offset, DEFAULT_SLASH))) { *p = '\0'; if (VCWD_STAT(buf, &sb) == 0) { *p = DEFAULT_SLASH; break; } } + if (p == buf) { ret = php_mkdir(dir, mode TSRMLS_CC); } else if (!(ret = php_mkdir(buf, mode TSRMLS_CC))) {