mirror of
https://github.com/php/php-src.git
synced 2024-11-25 02:44:58 +08:00
Improved readlink, supress \??\ and use the drive syntax only
This commit is contained in:
parent
ef582b5397
commit
bea1685a21
5
NEWS
5
NEWS
@ -7,6 +7,9 @@ PHP NEWS
|
||||
- Added error constant when json_encode() detects an invalid UTF-8 sequence.
|
||||
(Scott)
|
||||
|
||||
|
||||
- Improved readlink on Windows, supress \??\ and use the drive syntax only.
|
||||
(Pierre)
|
||||
- Improved dns_get_record AAAA support on windows. Always available when IPv6
|
||||
is support is installed, format is now the same than on unix. (Pierre)
|
||||
- Improved the DNS functions on OSX to use newer APIs, also use Bind 9 API
|
||||
@ -14,7 +17,7 @@ PHP NEWS
|
||||
- Improved shared extension loading on OSX to use the standard Unix dlopen()
|
||||
API. (Scott)
|
||||
|
||||
- Fixed possilbe bad caching of symlinked directories in the realpath cache
|
||||
- Fixed possible bad caching of symlinked directories in the realpath cache
|
||||
on Windows. (Pierre)
|
||||
- Fixed atime and mtime in stat related functions on Windows. (Pierre)
|
||||
- Fixed spl_autoload_unregister/spl_autoload_functions wrt. Closures and
|
||||
|
@ -107,7 +107,7 @@ PHP_FUNCTION(readlink)
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
dwRet = pGetFinalPathNameByHandle(hFile, Path, MAXPATHLEN, VOLUME_NAME_NT);
|
||||
dwRet = pGetFinalPathNameByHandle(hFile, Path, MAXPATHLEN, VOLUME_NAME_DOS);
|
||||
if(dwRet >= MAXPATHLEN) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't resolve the full path, the path exceeds the MAX_PATH_LEN (%d) limit", MAXPATHLEN);
|
||||
RETURN_FALSE;
|
||||
@ -118,7 +118,14 @@ PHP_FUNCTION(readlink)
|
||||
/* Append NULL to the end of the string */
|
||||
Path[dwRet] = '\0';
|
||||
|
||||
RETURN_STRING(Path, 1);
|
||||
if(dwRet > 4) {
|
||||
/* Skip first 4 characters if they are "\??\" */
|
||||
if(Path[0] == '\\' && Path[0] == '\\' && Path[1] == '?' && Path[2] == '?' && Path[3] == '\\') {
|
||||
RETURN_STRING(Path + 4, 1);
|
||||
}
|
||||
} else {
|
||||
RETURN_STRING(Path, 1);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user