Edit report at http://pear.php.net/bugs/bug.php?id=18702&edit=1
ID: 18702
Updated by: [email protected]
Reported By: landeholm at gmail dot com
Summary: Unpacks incorrectly on long file names using header
prefix
-Status: Assigned
+Status: Closed
Type: Bug
Package: Archive_Tar
Operating System: Irrelevant
Package Version: 1.3.7
PHP Version: 5.3.6
Assigned To: mrook
Roadmap Versions:
New Comment:
-Status: Assigned
+Status: Closed
This bug has been fixed in SVN.
If this was a documentation problem, the fix will appear on pear.php.net
by the end of next Sunday (CET).
If this was a problem with the pear.php.net website, the change should
be live shortly.
Otherwise, the fix will appear in the package's next release.
Thank you for the report and for helping us make PEAR better.
Previous Comments:
------------------------------------------------------------------------
[2011-08-07 13:58:28] mrook
-Status: Open
+Status: Assigned
-Assigned To:
+Assigned To: mrook
------------------------------------------------------------------------
[2011-08-07 13:58:12] mrook
-Status: Open
+Status: Assigned
-Roadmap Versions:
+Roadmap Versions: 1.3.8
------------------------------------------------------------------------
[2011-08-02 23:40:58] hannes_landeholm
Description:
------------
Long file names does not unpack correctly when the prefix field in the
TAR header is set. This is because Archive_Tar ignore that field.
Test script:
---------------
This is a sample tar that has some long image file names that
incorrectly get extracted to root rather than into their target
directory: https://github.com/melt/melt/tarball/1.0
Here is the patch I used which fixed the problem:
@@ -1314,8 +1314,10 @@
$v_data =
unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/"
."a8checksum/a1typeflag/a100link/a6magic/a2version/"
- ."a32uname/a32gname/a8devmajor/a8devminor",
+ ."a32uname/a32gname/a8devmajor/a8devminor/a131prefix",
$v_binary_data);
+ if (strlen($v_data["prefix"]) > 0)
+ $v_data["filename"] = "$v_data[prefix]/$v_data[filename]";
// ----- Extract the checksum
$v_header['checksum'] = OctDec(trim($v_data['checksum']));
------------------------------------------------------------------------
--
Edit this bug report at http://pear.php.net/bugs/bug.php?id=18702&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.