pajoye Mon, 13 Sep 2010 10:58:18 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=303315
Log:
- sanity check for the path length and don't treat UNC as local path (no
functional change, only less ops)
Changed paths:
U php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c
U php/php-src/trunk/TSRM/tsrm_virtual_cwd.c
Modified: php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c
===================================================================
--- php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c 2010-09-13
10:47:32 UTC (rev 303314)
+++ php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c 2010-09-13
10:58:18 UTC (rev 303315)
@@ -273,17 +273,20 @@
{
WIN32_FILE_ATTRIBUTE_DATA data;
__int64 t;
+ const size_t path_len = strlen(path);
if (!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) {
return stat(path, buf);
}
- if (path[1] == ':') {
+ if (path_len >= 1 && path[1] == ':') {
if (path[0] >= 'A' && path[0] <= 'Z') {
buf->st_dev = buf->st_rdev = path[0] - 'A';
} else {
buf->st_dev = buf->st_rdev = path[0] - 'a';
}
+ } else if (IS_UNC_PATH(path, path_len)) {
+ buf->st_dev = buf->st_rdev = 0;
} else {
char cur_path[MAXPATHLEN+1];
DWORD len = sizeof(cur_path);
Modified: php/php-src/trunk/TSRM/tsrm_virtual_cwd.c
===================================================================
--- php/php-src/trunk/TSRM/tsrm_virtual_cwd.c 2010-09-13 10:47:32 UTC (rev
303314)
+++ php/php-src/trunk/TSRM/tsrm_virtual_cwd.c 2010-09-13 10:58:18 UTC (rev
303315)
@@ -273,17 +273,20 @@
{
WIN32_FILE_ATTRIBUTE_DATA data;
__int64 t;
+ const size_t path_len = strlen(path);
if (!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) {
return stat(path, buf);
}
- if (path[1] == ':') {
+ if (path_len >= 1 && path[1] == ':') {
if (path[0] >= 'A' && path[0] <= 'Z') {
buf->st_dev = buf->st_rdev = path[0] - 'A';
} else {
buf->st_dev = buf->st_rdev = path[0] - 'a';
}
+ } else if (IS_UNC_PATH(path, path_len)) {
+ buf->st_dev = buf->st_rdev = 0;
} else {
char cur_path[MAXPATHLEN+1];
DWORD len = sizeof(cur_path);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php