Skip to content

Commit 29968d8

Browse files
committed
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.
1 parent b962d2e commit 29968d8

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ PHP NEWS
66
. Fixed bug #79434 (PHP 7.3 and PHP-7.4 crash with NULL-pointer dereference
77
on !CS constant). (Nikita)
88
. Fixed bug #79477 (casting object into array creates references). (Nikita)
9+
. Fixed bug #79470 (PHP incompatible with 3rd party file system on demand).
10+
(cmb)
11+
. Fixed bug #78784 (Unable to interact with files inside a VFS for Git
12+
repository). (cmb)
913

1014
- DOM:
1115
. Fixed bug #78221 (DOMNode::normalize() doesn't remove empty text nodes).

Zend/zend_virtual_cwd.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@
5555
#define IO_REPARSE_TAG_ONEDRIVE (0x80000021L)
5656
#endif
5757

58+
# ifndef IO_REPARSE_TAG_ACTIVISION_HSM
59+
# define IO_REPARSE_TAG_ACTIVISION_HSM (0x00000047L)
60+
# endif
61+
62+
# ifndef IO_REPARSE_TAG_PROJFS
63+
# define IO_REPARSE_TAG_PROJFS (0x9000001CL)
64+
# endif
65+
5866
# ifndef VOLUME_NAME_NT
5967
# define VOLUME_NAME_NT 0x2
6068
# endif
@@ -1002,7 +1010,9 @@ static size_t tsrm_realpath_r(char *path, size_t start, size_t len, int *ll, tim
10021010
else if (pbuffer->ReparseTag == IO_REPARSE_TAG_DEDUP ||
10031011
/* Starting with 1709. */
10041012
(pbuffer->ReparseTag & ~IO_REPARSE_TAG_CLOUD_MASK) == IO_REPARSE_TAG_CLOUD ||
1005-
IO_REPARSE_TAG_ONEDRIVE == pbuffer->ReparseTag) {
1013+
IO_REPARSE_TAG_ONEDRIVE == pbuffer->ReparseTag ||
1014+
IO_REPARSE_TAG_ACTIVISION_HSM == pbuffer->ReparseTag ||
1015+
IO_REPARSE_TAG_PROJFS == pbuffer->ReparseTag) {
10061016
isabsolute = 1;
10071017
substitutename = malloc((len + 1) * sizeof(char));
10081018
if (!substitutename) {

0 commit comments

Comments
 (0)