iliaa Mon Feb 14 19:25:39 2005 EDT
Modified files:
/php-src/main rfc1867.c
Log:
Prune uploaded file names to \ on all OSes, read comments for explanation.
http://cvs.php.net/diff.php/php-src/main/rfc1867.c?r1=1.169&r2=1.170&ty=u
Index: php-src/main/rfc1867.c
diff -u php-src/main/rfc1867.c:1.169 php-src/main/rfc1867.c:1.170
--- php-src/main/rfc1867.c:1.169 Mon Jan 31 21:33:07 2005
+++ php-src/main/rfc1867.c Mon Feb 14 19:25:38 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: rfc1867.c,v 1.169 2005/02/01 02:33:07 iliaa Exp $ */
+/* $Id: rfc1867.c,v 1.170 2005/02/15 00:25:38 iliaa Exp $ */
/*
* This product includes software developed by the Apache Group
@@ -1077,11 +1077,7 @@
str_len = strlen(filename);
php_mb_gpc_encoding_converter(&filename, &str_len, 1, NULL, NULL TSRMLS_CC);
}
-#ifdef PHP_WIN32
s = php_mb_strrchr(filename, '\\' TSRMLS_CC);
-#else
- s = filename;
-#endif
if ((tmp = php_mb_strrchr(filename, '/'
TSRMLS_CC)) > s) {
s = tmp;
}
@@ -1089,12 +1085,13 @@
goto filedone;
}
#endif
-
-#ifdef PHP_WIN32
+ /* The \ check should technically be needed for win32
systems only where
+ * it is a valid path separator. However, IE in all
it's wisdom always sends
+ * the full path of the file on the user's filesystem,
which means that unless
+ * the user does basename() they get a bogus file name.
Until IE's user base drops
+ * to nill or problem is fixed this code must remain
enabled for all systems.
+ */
s = strrchr(filename, '\\');
-#else
- s = filename;
-#endif
if ((tmp = strrchr(filename, '/')) > s) {
s = tmp;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php