summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-04-27 09:31:21 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-04-27 09:31:38 +0200
commita2ed731fa5b22e9551c54f9237b56dc71ba37c81 (patch)
treec66425c87d02c6b6b20cbbf9ef846036d9acf631
parent3151676f520555bfadb39ea76779e93552d13fc1 (diff)
parent29968d8f992559080bc9d5d4eab37f1fad8094df (diff)
downloadphp-git-a2ed731fa5b22e9551c54f9237b56dc71ba37c81.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #79470: PHP incompatible with 3rd party file system on demand
-rw-r--r--NEWS4
-rw-r--r--Zend/zend_virtual_cwd.c12
2 files changed, 15 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index bc5fc665e2..ba008a7ba7 100644
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,10 @@ PHP NEWS
. Fixed bug #79477 (casting object into array creates references). (Nikita)
. Fixed bug #79514 (Memory leaks while including unexistent file). (cmb,
Nikita)
+ . Fixed bug #79470 (PHP incompatible with 3rd party file system on demand).
+ (cmb)
+ . Fixed bug #78784 (Unable to interact with files inside a VFS for Git
+ repository). (cmb)
- DOM:
. Fixed bug #78221 (DOMNode::normalize() doesn't remove empty text nodes).
diff --git a/Zend/zend_virtual_cwd.c b/Zend/zend_virtual_cwd.c
index 177c66ed7f..e784ffc1f4 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
@@ -753,7 +761,9 @@ retry:
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) {