php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #58017 archive files with many root entries cannot be opened
Submitted: 2008-01-24 05:19 UTC Modified: 2013-02-18 00:35 UTC
From: vadim at vadiaz dot com Assigned: pajoye (profile)
Status: No Feedback Package: zip (PECL)
PHP Version: 5.1.6 OS: CentOS 5.1 x86_64
Private report: No CVE-ID: None
 [2008-01-24 05:19 UTC] vadim at vadiaz dot com
Description:
------------
package totally broken on 64 bit systems
From strace I seen that it made seek far beyond zip archive
while opening it.
I look up code and found that there is wrong default type cast 

See patch below

Reproduce code:
---------------
code used:
include_once "/home/httpd/includes/general/zip0stream.php";                                         
                                                                                                   include "zip0://testSite.zip/f1/tst.php";                                                 

patch:
--- zip-1.8.10/lib/zip_open.c   2007-05-22 12:32:32.000000000 +0300
+++ zip-1.8.10.1/lib/zip_open.c 2008-01-24 11:39:25.000000000 +0200
@@ -313,7 +313,8 @@
        /* go to start of cdir and read it entry by entry */
        bufp = NULL;
        clearerr(fp);
-       fseek(fp, -(cd->size+cd->comment_len+EOCDLEN), SEEK_END);
+       long seek_point = cd->size+cd->comment_len+EOCDLEN;
+       fseek(fp, -seek_point, SEEK_END);
        if (ferror(fp) || ((unsigned int)ftell(fp) != cd->offset)) {
            /* seek error or offset of cdir wrong */
            if (ferror(fp))


Expected result:
----------------
<html>
<head>
<title>Test of ZipArchive</title>
</head>
<body>
<center><h1>ZipArchive works Ok</h1></center></body>
</html>


Actual result:
--------------
can not open stream 'zip0://testSite.zip/f1/tst.php'

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-01-24 05:25 UTC] pierre dot php at gmail dot com
"package totally broken on 64 bit systems"

I use it on 64bits system without issues except the large file support (but that's not only a 64bit problem).

Can you provide the archive you use to reproduce this error please?
 [2008-01-29 09:37 UTC] vadim at vadiaz dot com
there is a an ls output on archive file
page and class it used:

jim@proglot zip 103 $ ll testSite.zip 
-rwxrw-rw- 1 jim jim 2401954 2007-11-26 18:49 testSite.zip

<html>
<head>
<title>Test of ZipArchive</title>
</head>
<body>
<?php
#ini_set('display_errors','true');
include_once "zip0stream.php";

include "zip0://testSite.zip/f1/tst.php";

?>
</body>
</html>
<?

class ZIP0Stream 
{
    protected $zipPath;
    protected $zipArchive;
	//file specific info
	protected $position;
    protected $length;
    protected $content;
    protected $filePath;
    
    //dir specific info
    protected $dirPath;
    protected $curEntryNum;
    
    static protected $archives = array();
    static public $debug = true;
    
    function __construct()
    {
    	$this->stream_close();
    	$this->dir_closedir();
    	$this->zipArchive = false;
    	$this->zipPath = '';
    }
   
    public function stream_close() 
    {
    	$this->position = $this->length = 0;
    	$this->content = '';
    }
   
    public function stream_open($path, $mode, $options, &$opened_path) 
    {
    	if(self::$debug)echo "stream_open 1 $path $mode\n";
    	if(substr($mode,0,1) != 'r') {
    		return false;
    	}
    	$components = parse_url($path);
    	if(self::$debug)echo "stream_open 2 $components[scheme]\n";
    	if($components['scheme'] != 'zip0') {
    		return false;
    	}
    	$this->filePath = substr($components['path'],1);
    	$this->zipPath = $components['host'];

    	if(self::$debug)echo "stream_open 3 $this->zipPath $this->filePath\n";
    	
    	if(array_key_exists($this->zipPath, self::$archives)) {
    		$this->zipArchive = self::$archives[$this->zipPath];
    	}
    	else {
    		$this->zipArchive = new ZipArchive();
    		if(($res = $this->zipArchive->open($this->zipPath)) !== true){
    			$this->zipArchive = false;
    			self::$archives[$this->zipPath] = false;
		    	if(self::$debug)echo "error opening archive $this->zipPath error=$res\n";
    			return false;
    		}
    		self::$archives[$this->zipPath] = $this->zipArchive;
    	}
    	
    	$fp = $this->zipArchive->getStream($this->filePath);
    	if(!$fp) {
	    	if(self::$debug)echo "error getStream $this->zipPath $this->filePath\n";
    		return false;
    	}
    	while (!feof($fp)) {
	        $this->content .= fread($fp, 4096);
    	}

        $this->position = 0;
        $this->length = strlen($this->content);
        
        return true;
    }

    public function stream_read($count) 
    {
        $count = min($count, $this->length - $this->position);
        if($count <= 0)return false;
        $pos = $this->position; 
        $this->position += $count;
    	return substr($this->content, $pos, $count);
    }

    public function stream_write($data) 
    {
        return 0;
    }

    public function stream_tell() 
    {
        return $this->position;
    }

    public function stream_eof() 
    {
        return $this->position >= $this->length;
    }

    public function stream_seek($offset, $whence) 
    {
        
    	switch ($whence) {
            case SEEK_SET:
            	$pos = 0;
                return false;
                
            case SEEK_CUR:
            	$pos = $this->position;
                break;
                
            case SEEK_END:
            	$pos = $this->length;
                break;
                
            default:
                return false;
        }

        $pos += $offset;
        if ($pos < $this->length && $pos >= 0) {
             $this->position = $pos;
             return true;
        } 
        return false;
    }

    public function stream_flush(){
    	return false; 
    }
    public function unlink($path){ 
    	return false;
    }
    
    public function stream_stat()
    { 
    	if(self::$debug)echo "stream_stat\n";
    	return false; 
    }

    public function url_stat($path, $flags )
    { 
    	if(self::$debug)echo "url_stat $path $flags\n";
    	return false; 
    }

    public function rename($pathfrom, $pathto){
    	return false; 
    }
    
    public function mkdir($path, $mode, $options ){ 
    	return false;
    }
    
    public function rmdir($path, $options ){
    	return false;
    }

    public function dir_opendir ($path,  $options )
    { 
    	if(self::$debug)echo "dir_opendir $path $flags\n";
    	return false; 
    }

    public function dir_readdir ()
    { 
    	//todo
    	return false; 
    }

    public function dir_rewinddir ()
    { 
    	$this->curEntryNum = -1;
    	return false; 
    }

    public function dir_closedir ()
    { 
    	$this->dirPath = '';
    	$this->curEntryNum = -1;
    	return false; 
    }

}

if (class_exists('ZIP0Stream') && !in_array('zip0', stream_get_wrappers())) {
    stream_wrapper_register('zip0', 'ZIP0Stream');
}

?>
 [2008-01-29 09:40 UTC] vadim at vadiaz dot com
it is the same behavoir on Fedora core 8 php 5.2.4
How I can send zip archive to you (~2.3Mb)?
 [2008-01-29 09:52 UTC] pierre dot php at gmail dot com
"it is the same behavoir on Fedora core 8 php 5.2.4
How I can send zip archive to you (~2.3Mb)?"

Can you post an URL to it please? or drop it to my mail:

pierre [dot] php [at] gmail [dot] com

rename the .zip to .foo (gmail does not like zip sometimes :)
 [2008-01-29 10:07 UTC] vadim at vadiaz dot com
Ok here we go, I put here base64 encoded file testSite.zip.bz2 copy MIME section save on disk and base64 -d name-you-saved > testSite.zip.bz2;bunzip2 testSite.zip.bz2
and you can test it with code I submitted. Actually any archive with many root entries in archive will produce error. Hope this will help you.

QlpoOTFBWSZTWWxaSMQAlJh/////////////////////////////////////////////4CQ/ABQo
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
8TkgXdIASSzyAEkqErtJAZCf/F3JFOFCQbFpIxA=
 [2008-01-29 10:20 UTC] pierre dot php at gmail dot com
Please post a __LINK__ to it :)

something like http://example.com/my.zip

or mail it :)
 [2008-01-29 11:04 UTC] vadim at vadiaz dot com
http://www.4shared.com/dir/5504564/c676a2b4/bug12965.html
 [2008-05-20 19:58 UTC] pierre dot php at gmail dot com
Please try using pecl/zip CVS. I plan to release 1.10.0 later this week if all known bugs are fixed.

(or us this snap http://blog.thepimp.net/misc/zip-1.10.0.tgz)
 [2013-02-18 00:35 UTC] pecl-dev at lists dot php dot net
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 "Open". Thank you.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Oct 05 18:01:28 2024 UTC