Bug #74674 [Fbk->NoF]: Problem of extracting an archive with symbolic links
Edit report at https://bugs.php.net/bug.php?id=74674&edit=1
ID: 74674
Updated by: php-bugs@lists.php.net
Reported by: gwenael dot pellen at arkeup dot com
Summary: Problem of extracting an archive with symbolic links
-Status: Feedback
+Status: No Feedback
Type: Bug
Package: PHAR related
Operating System: Linux Ubuntu 16.04 LTS
PHP Version: 7.1.5
Assigned To: cmb
Private report: N
New Comment:
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.
Previous Comments:
------------------------------------------------------------------------
[2021-09-16 21:17:36] cmb@php.net
I cannot reproduce this with PHP-7.4 (neither on Debian nor
Windows). Is this still an issue for you with any of the actively
supported PHP versions[1]?
[1] <https://www.php.net/supported-versions.php>
------------------------------------------------------------------------
[2017-05-30 14:34:34] gwenael dot pellen at arkeup dot com
Description:
------------
$ php -v
PHP 7.1.5-1+deb.sury.org~xenial+2 (cli) (built: May 22 2017 12:48:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.5-1+deb.sury.org~xenial+2, Copyright (c) 1999-2017, by Zend Technologies
Create my data
$ mkdir /tmp/php-bug/ && cd /tmp/php-bug/
$ mkdir -p source1/dir1
$ mkdir -p source1/dir2
$ mkdir source2
$ ln -s ../source1/dir1 source2/dir1
$ ln -s ../source1/dir2 source2/dir2
Create TAR archive
$ tar cvf source2.tar source2/
source2/
source2/dir1
source2/dir2
Show TAR archive
$ tar tvf source2.tar
drwxr-xr-x root/root 0 2017-05-30 14:00 source2/
lrwxrwxrwx root/root 0 2017-05-30 14:00 source2/dir1 -> ../source1/dir1
lrwxrwxrwx root/root 0 2017-05-30 14:00 source2/dir2 -> ../source1/dir2
Create PHP script to extract this archive.
$ cat > extract.php <<EOT
<?php
\$path = getcwd();
echo \$path, "\n";
\$phar = new PharData('source2.tar');
\$phar->extractTo(\$path,null,true);
EOT
Launch PHP script
$ php extract.php
/tmp/php-bug
PHP Warning: PharData::extractTo(/tmp/php-bug/source2/dir1): failed to open stream: Is a directory
in /tmp/php-bug/extract.php on line 5
PHP Fatal error: Uncaught PharException: Extraction from phar "/tmp/php-bug/source2.tar"
failed: Cannot extract "source2/dir1", could not open for writing
"/tmp/php-bug/source2/dir1" in /tmp/php-bug/extract.php:5
Stack trace:
#0 /tmp/php-bug/extract.php(5): PharData->extractTo('/tmp/php-bug', NULL, true)
#1 {main}
thrown in /tmp/php-bug/extract.php on line 5
Test script:
---------------
<?php
$path = getcwd();
echo $path, "\n";
$phar = new PharData('source2.tar');
$phar->extractTo(\$path,null,true);
Expected result:
----------------
$ php extract.php
$
Actual result:
--------------
$ php extract.php
/tmp/php-bug
PHP Warning: PharData::extractTo(/tmp/php-bug/source2/dir1): failed to open stream: Is a directory
in /tmp/php-bug/extract.php on line 5
PHP Fatal error: Uncaught PharException: Extraction from phar "/tmp/php-bug/source2.tar"
failed: Cannot extract "source2/dir1", could not open for writing
"/tmp/php-bug/source2/dir1" in /tmp/php-bug/extract.php:5
Stack trace:
#0 /tmp/php-bug/extract.php(5): PharData->extractTo('/tmp/php-bug', NULL, true)
#1 {main}
thrown in /tmp/php-bug/extract.php on line 5
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=74674&edit=1
Thread (3 messages)