Commit: a2e4404bc8155e6b6d9deefa22a172857d4b5e08 Author: Anatoliy Belsky <a...@php.net> Wed, 31 Oct 2012 22:41:03 +0100 Parents: a17559d4224eea0148ad67de9bb1cca22cbef7f6 Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=a2e4404bc8155e6b6d9deefa22a172857d4b5e08 Log: Fixed bug #63241 PHP fails to open Windows deduplicated files. Fix by (daniel dot stelter-gliese at innogames dot de). No test is supplied because the issue addresses the new feature of the Windows Server 2012 and would need a very specific filesystem setup. Bugs: https://bugs.php.net/63241 Changed paths: M NEWS M TSRM/tsrm_virtual_cwd.c Diff: diff --git a/NEWS b/NEWS index 89921e8..9b87011 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2012, PHP 5.3.19 +- Core + . Fixed bug #63241 PHP fails to open Windows deduplicated files. + (daniel dot stelter-gliese at innogames dot de) + - Libxml . Fixed bug #63389 (Missing context check on libxml_set_streams_context() causes memleak). (Laruence) diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index e734406..d4ee223 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -40,6 +40,10 @@ # define IO_REPARSE_TAG_SYMLINK 0xA000000C # endif +# ifndef IO_REPARSE_TAG_DEDUP +# define IO_REPARSE_TAG_DEDUP 0x80000013 +# endif + # ifndef VOLUME_NAME_NT # define VOLUME_NAME_NT 0x2 # endif @@ -958,6 +962,11 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i return -1; }; substitutename[substitutename_len] = 0; + } + else if (pbuffer->ReparseTag == IO_REPARSE_TAG_DEDUP) { + isabsolute = 1; + memcpy(substitutename, path, len + 1); + substitutename_len = len; } else { tsrm_free_alloca(pbuffer, use_heap_large); return -1; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php