Skip to content

Commit 24e4af0

Browse files
committed
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: Fixed bug #63241 PHP fails to open Windows deduplicated files.
2 parents 965bd32 + a2e4404 commit 24e4af0

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ PHP NEWS
66
. Fixed bug #63305 (zend_mm_heap corrupted with traits). (Dmitry, Laruence)
77
. Fixed bug #63369 ((un)serialize() leaves dangling pointers, causes crashes).
88
(Tony, Andrew Sitnikov)
9+
. Fixed bug #63241 PHP fails to open Windows deduplicated files.
10+
(daniel dot stelter-gliese at innogames dot de)
911

1012
- Curl:
1113
. Fixed bug #63363 (Curl silently accepts boolean true for SSL_VERIFYHOST).

TSRM/tsrm_virtual_cwd.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@
4040
# define IO_REPARSE_TAG_SYMLINK 0xA000000C
4141
# endif
4242

43+
# ifndef IO_REPARSE_TAG_DEDUP
44+
# define IO_REPARSE_TAG_DEDUP 0x80000013
45+
# endif
46+
4347
# ifndef VOLUME_NAME_NT
4448
# define VOLUME_NAME_NT 0x2
4549
# endif
@@ -945,6 +949,11 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
945949
return -1;
946950
};
947951
substitutename[substitutename_len] = 0;
952+
}
953+
else if (pbuffer->ReparseTag == IO_REPARSE_TAG_DEDUP) {
954+
isabsolute = 1;
955+
memcpy(substitutename, path, len + 1);
956+
substitutename_len = len;
948957
} else {
949958
tsrm_free_alloca(pbuffer, use_heap_large);
950959
return -1;

0 commit comments

Comments
 (0)