Bug #65636 [Com]: Stream path cannot contail null char (chr(0))
| From: | bixuehujin at gmail dot com | Date: | Thu, 19 Sep 2013 12:25:26 +0000 |
| Subject: | Bug #65636 [Com]: Stream path cannot contail null char (chr(0)) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-181684@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=65636&edit=1
ID: 65636
Comment by: bixuehujin at gmail dot com
Reported by: bilge at scriptfusion dot com
Summary: Stream path cannot contail null char (chr(0))
Status: Open
Type: Bug
Package: Streams related
Operating System: Linux
PHP Version: 5.5.3
Block user comment: N
Private report: N
New Comment:
AFAIK, it is not possible to contain null character in a filename path, this is not because of PHP
but the OS.
At the OS level, it seems no way to handle a file contains null characters.
Previous Comments:
------------------------------------------------------------------------
[2013-09-08 23:02:36] bilge at scriptfusion dot com
Description:
------------
Stream path can contain any character, whether URL encoded or not, except for the null character.
Including a null character in the path raises the following error:
file_get_contents() expects parameter 1 to be a valid path, string given
Both the use case and test suite to support the claims above can be found at https://github.com/Bilge/VerbatimStream/tree/eb185806f9bea3ee65b7d0f3e42dcd27a7b40614
The use case is a custom stream wrapper that takes the path and converts it into a read-only data
stream. The current workaround is to urlencode any path that contains nulls. However, this approach
provides little benefit over the data wrapper. Being able to include nulls directly in the path
would eliminate unnecessary url encoding and decoding in the custom wrapper implementation.
Test script:
---------------
file_get_contents("\000");
//or
file_get_contents("verbatim://\000");
Expected result:
----------------
No error.
Actual result:
--------------
file_get_contents() expects parameter 1 to be a valid path, string given
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=65636&edit=1