]> granicus.if.org Git - php/commitdiff
MFH: Use multibyte specific code for handling files and generic basename
authorIlia Alshanetsky <iliaa@php.net>
Mon, 24 Jan 2005 22:41:41 +0000 (22:41 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Mon, 24 Jan 2005 22:41:41 +0000 (22:41 +0000)
based code in all other instances.

main/rfc1867.c

index 4982cf3e59475b9f8d2612a9e17f3ac6234f27e8..ba3c5d05ccbdb41dc91dacc080ee2b2a47256188 100644 (file)
@@ -32,6 +32,7 @@
 #include "php_globals.h"
 #include "php_variables.h"
 #include "rfc1867.h"
+#include "ext/standard/php_string.h"
 
 #define DEBUG_FILE_UPLOAD ZEND_DEBUG
 
@@ -1082,18 +1083,19 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler)
                                        s = tmp;
                                }
                                num_vars--;
-                       } else {
-                               s = strrchr(filename, '\\');
-                               if ((tmp = strrchr(filename, '/')) > s) {
-                                       s = tmp;
-                               }
-                       }
-#else
-                       s = strrchr(filename, '\\');
-                       if ((tmp = strrchr(filename, '/')) > s) {
-                               s = tmp;
+                               goto filedone;
                        }
 #endif
+
+                       /* ensure that the uploaded file name only contains the path */
+                       php_basename(filename, strlen(filename), NULL, 0, &s, NULL TSRMLS_CC);
+                       efree(filename);
+                       filename = s;
+
+#if HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING)
+filedone:
+#endif
+
                        
                        if (!is_anonymous) {
                                if (s && s > filename) {