Commit:    d3780f1f903e6cee4bb2ff723aa36a5cd1824c08
Author:    Anatoliy Belsky <a...@php.net>         Sun, 17 Jun 2012 16:04:36 
+0200
Parents:   26cb5706155347815cec5b2fb5af968e31fd55e3
Branches:  PHP-5.3 PHP-5.4 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=d3780f1f903e6cee4bb2ff723aa36a5cd1824c08

Log:
Reverted the BC fix regarding to #57905, test adopted

New 0.10.1 has a stronger archive integrity check. Restoring
the old behaviour of libzip < 0.10.1 makes no sense at this
place.

Bugs:
https://bugs.php.net/57905

Changed paths:
  M  ext/zip/lib/zip_open.c
  M  ext/zip/tests/pecl12414.phpt


Diff:
diff --git a/ext/zip/lib/zip_open.c b/ext/zip/lib/zip_open.c
index a348d98..2f56881 100644
--- a/ext/zip/lib/zip_open.c
+++ b/ext/zip/lib/zip_open.c
@@ -206,9 +206,7 @@ _zip_readcdir(FILE *fp, off_t buf_offset, unsigned char 
*buf, unsigned char *eoc
     cd->comment = NULL;
     cd->comment_len = _zip_read2(&cdp);
 
-       /* without checking the ZIP_CHECKCONS flag we'll not able even to open 
inconsistent
-          archives at this place, which would break bc in PHP */
-    if ((ZIP_CHECKCONS == (flags & ZIP_CHECKCONS)) && 
((zip_uint64_t)cd->offset)+cd->size > buf_offset + (eocd-buf)) {
+    if (((zip_uint64_t)cd->offset)+cd->size > buf_offset + (eocd-buf)) {
        /* cdir spans past EOCD record */
        _zip_error_set(error, ZIP_ER_INCONS, 0);
        cd->nentry = 0;
@@ -239,13 +237,7 @@ _zip_readcdir(FILE *fp, off_t buf_offset, unsigned char 
*buf, unsigned char *eoc
        }
     }
 
-       /* the first if branch goes the old way of libzip 0.9 so we don't loose 
-          the bc for reading inconsistent files */
-       if ((ZIP_CHECKCONS != (flags & ZIP_CHECKCONS)) && cd->size < (unsigned 
int)(eocd-buf)) {
-       cdp = eocd - cd->size;
-       bufp = &cdp;
-       }
-       else if (cd->offset >= buf_offset) {
+    if (cd->offset >= buf_offset) {
        /* if buffer already read in, use it */
        cdp = buf + (cd->offset - buf_offset);
        bufp = &cdp;
diff --git a/ext/zip/tests/pecl12414.phpt b/ext/zip/tests/pecl12414.phpt
index ab11d21..6154638 100644
--- a/ext/zip/tests/pecl12414.phpt
+++ b/ext/zip/tests/pecl12414.phpt
@@ -35,5 +35,4 @@ if ($res === TRUE) {
 ?>
 --DONE--
 --EXPECTF--
-ZIP contents size: %d
-zip_readfile recorded data does not match unpacked size: %specl12414.zip : 
MYLOGOV2.GFX
+zip_readfile could not read from %specl12414.zip : MYLOGOV2.GFX


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to