summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatoliy Belsky <ab@php.net>2012-10-31 22:55:32 +0100
committerAnatoliy Belsky <ab@php.net>2012-10-31 22:55:32 +0100
commit24e4af0b8f8ca86e26a6e536c3827ae3f33bfebc (patch)
tree7ef9b86e5bdc4101ec8b94f7a5cb90e450077576
parent965bd32fec803c4ca20157c621ee663dccfaeb29 (diff)
parenta2e4404bc8155e6b6d9deefa22a172857d4b5e08 (diff)
downloadphp-git-24e4af0b8f8ca86e26a6e536c3827ae3f33bfebc.tar.gz
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: Fixed bug #63241 PHP fails to open Windows deduplicated files.
-rw-r--r--NEWS2
-rw-r--r--TSRM/tsrm_virtual_cwd.c9
2 files changed, 11 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 7a1438a819..503a9d5ab4 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ PHP NEWS
. Fixed bug #63305 (zend_mm_heap corrupted with traits). (Dmitry, Laruence)
. Fixed bug #63369 ((un)serialize() leaves dangling pointers, causes crashes).
(Tony, Andrew Sitnikov)
+ . Fixed bug #63241 PHP fails to open Windows deduplicated files.
+ (daniel dot stelter-gliese at innogames dot de)
- Curl:
. Fixed bug #63363 (Curl silently accepts boolean true for SSL_VERIFYHOST).
diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c
index 683d6a4d52..6779b56974 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
@@ -945,6 +949,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;