From 3934a5b005c146c368797180aec60aba66a8230b Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Fri, 24 Apr 2020 17:24:25 +0200 Subject: [PATCH] Fix #79470: PHP incompatible with 3rd party file system on demand We add support for Activision HSM (`IO_REPARSE_TAG_ACTIVISION_HSM`) and VFS for Git (`IO_REPARSE_TAG_PROJFS`). The latter fixes bug #78784. --- Zend/zend_virtual_cwd.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c index c523f40dc952d..253ed8c420262 100644 --- a/Zend/zend_virtual_cwd.c +++ b/Zend/zend_virtual_cwd.c @@ -55,6 +55,14 @@ #define IO_REPARSE_TAG_ONEDRIVE (0x80000021L) #endif +# ifndef IO_REPARSE_TAG_ACTIVISION_HSM +# define IO_REPARSE_TAG_ACTIVISION_HSM (0x00000047L) +# endif + +# ifndef IO_REPARSE_TAG_PROJFS +# define IO_REPARSE_TAG_PROJFS (0x9000001CL) +# endif + # ifndef VOLUME_NAME_NT # define VOLUME_NAME_NT 0x2 # endif @@ -1002,7 +1010,9 @@ static size_t tsrm_realpath_r(char *path, size_t start, size_t len, int *ll, tim else if (pbuffer->ReparseTag == IO_REPARSE_TAG_DEDUP || /* Starting with 1709. */ (pbuffer->ReparseTag & ~IO_REPARSE_TAG_CLOUD_MASK) == IO_REPARSE_TAG_CLOUD || - IO_REPARSE_TAG_ONEDRIVE == pbuffer->ReparseTag) { + IO_REPARSE_TAG_ONEDRIVE == pbuffer->ReparseTag || + IO_REPARSE_TAG_ACTIVISION_HSM == pbuffer->ReparseTag || + IO_REPARSE_TAG_PROJFS == pbuffer->ReparseTag) { isabsolute = 1; substitutename = malloc((len + 1) * sizeof(char)); if (!substitutename) {