From: Pierre Joye Date: Fri, 10 Sep 2010 19:21:02 +0000 (+0000) Subject: - remove 'UNC' from the target X-Git-Tag: php-5.3.4RC1~252 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cd727b4e9af5907da6e771b75caef8020d55c0cc;p=php - remove 'UNC' from the target --- diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index 9e07da6ef6..49ca126770 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -249,9 +249,17 @@ CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len){ /* Skip first 4 characters if they are "\??\" */ if(target[0] == '\\' && target[1] == '\\' && target[2] == '?' && target[3] == '\\') { char tmp[MAXPATHLEN]; - + unsigned int offset = 4; dwRet -= 4; - memcpy(tmp, target + 4, dwRet); + + /* \??\UNC\ */ + if (dwRet > 7 && target[4] == 'U' && target[5] == 'N' && target[6] == 'C') { + offset += 2; + dwRet -= 2; + target[offset] = '\\'; + } + + memcpy(tmp, target + offset, dwRet); memcpy(target, tmp, dwRet); } }