php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #79470 PHP incompatible with 3rd party file system on demand
Submitted: 2020-04-13 07:07 UTC Modified: 2020-04-13 14:00 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:1 of 2 (50.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: gilbertjgonzales at gmail dot com Assigned: cmb (profile)
Status: Closed Package: *Directory/Filesystem functions
PHP Version: 7.3Git-2020-04-13 (Git) OS: Windows 10
Private report: No CVE-ID: None
 [2020-04-13 07:07 UTC] gilbertjgonzales at gmail dot com
Description:
------------
Similar to bug https://bugs.php.net/bug.php?id=75384 which affected OneDrive, 3rd party file systems that use Reparse Tags are failing to open files for files that are fetched "On Demand." Currently any third party file system using Reparse Tags will fail unless added explicitly for handling in PHP ( such as the OneDrive bugfix 75384 ).


Test script:
---------------
1) Use 3rd party file system ( such as one created by company X ) using custom Reparse Tag
2) Store files using third party file system with "Fetch On Demand" feature implemented via custom Reparse Tag

Then in folder mapped to third party file system, create 2 files

Foo.php
<?php
require 'Bar.php';


Bar.php
<?php
echo 'Require worked';


Then run php Foo.php


Expected result:
----------------
See "Require worked" output to the screen

Actual result:
--------------
PHP Warning:  require(Bar.php): failed to open stream: No such file or directory
 in Foo.php on line 2

Warning: require(Bar.php): failed to open stream: No such file or directory in F
oo.php on line 2
PHP Fatal error:  require(): Failed opening required 'Bar.php' (include_path='.;
C:\php\pear') in Foo.php on line 2

Fatal error: require(): Failed opening required 'Bar.php' (include_path='.;C:\ph
p\pear') in Foo.php on line 2

Patches

Add a Patch

Pull Requests

Pull requests:

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-04-13 09:57 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2020-04-13 09:57 UTC] cmb@php.net
Thanks for reporting!  Likely hard to debug without actually
having access to such file system.

Anyhow, are you using a self-compiled PHP, or an official build
(from windows.php.net)?  If the latter, what's the exact version
and variant (file name)?  Also what is the exact Windows version
and build number (like shown by `winver`)?
 [2020-04-13 14:00 UTC] cmb@php.net
The following pull request has been associated:

Patch Name: Fixed bug #79470: PHP incompatible with 3rd party file system on demand
On GitHub:  https://github.com/php/php-src/pull/5379
Patch:      https://github.com/php/php-src/pull/5379.patch
 [2020-04-13 14:00 UTC] cmb@php.net
-Status: Feedback +Status: Assigned
 [2020-04-13 14:00 UTC] cmb@php.net
Ah, noticed the pull request, which answers my question regarding
the PHP version.
 [2020-04-13 18:23 UTC] gilbertjgonzales at gmail dot com
Hi.

A self-compiled version of php-src-PHP-7.1.9 is being used at the office which is now patched to support the non-public file system using Reparse Tags. This fix is the only change we've made.

However at the office 'master' was tested as well and had the same issue mentioned in the bug report. 

The winver displays:
Version 1803 (OS Build 17134.885)
 [2020-04-24 15:36 UTC] cmb@php.net
The following pull request has been associated:

Patch Name: Fix #79470: PHP incompatible with 3rd party file system on demand
On GitHub:  https://github.com/php/php-src/pull/5451
Patch:      https://github.com/php/php-src/pull/5451.patch
 [2020-04-27 07:33 UTC] cmb@php.net
Automatic comment on behalf of cmbecker69@gmx.de
Revision: http://git.php.net/?p=php-src.git;a=commit;h=29968d8f992559080bc9d5d4eab37f1fad8094df
Log: Fix #79470: PHP incompatible with 3rd party file system on demand
 [2020-04-27 07:33 UTC] cmb@php.net
-Status: Assigned +Status: Closed
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 19:01:28 2024 UTC