]> granicus.if.org Git - php/commitdiff
- Fixed bug #28456 (Problem with enclosed / in uploaded file names)
authorDerick Rethans <derick@php.net>
Fri, 21 May 2004 08:11:43 +0000 (08:11 +0000)
committerDerick Rethans <derick@php.net>
Fri, 21 May 2004 08:11:43 +0000 (08:11 +0000)
main/rfc1867.c

index 99bcd34f23a191450bd98cf7e32debeaf71944d6..54f1d53673d12045edf6fba35783f28e828b86c1 100644 (file)
@@ -835,7 +835,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler)
        while (!multipart_buffer_eof(mbuff TSRMLS_CC))
        {
                char buff[FILLUNIT];
-               char *cd=NULL,*param=NULL,*filename=NULL;
+               char *cd=NULL,*param=NULL,*filename=NULL, *tmp=NULL;
                int blen=0, wlen=0;
 
                zend_llist_clean(&header);
@@ -1044,12 +1044,21 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler)
                                        php_mb_gpc_encoding_converter(&filename, &str_len, 1, NULL, NULL TSRMLS_CC);
                                }
                                s = php_mb_strrchr(filename, '\\' TSRMLS_CC);
+                               if (tmp = php_mb_strrchr(filename, '/')) {
+                                       s = tmp;
+                               }
                                num_vars--;
                        } else {
                                s = strrchr(filename, '\\');
+                               if (tmp = strrchr(filename, '/')) {
+                                       s = tmp;
+                               }
                        }
 #else
                        s = strrchr(filename, '\\');
+                       if (tmp = strrchr(filename, '/')) {
+                               s = tmp;
+                       }
 #endif
                        if (!is_anonymous) {
                                if (s && s > filename) {