pajoye          Tue Oct 31 19:03:57 2006 UTC

  Modified files:              
    /php-src/ext/zip    php_zip.c 
    /php-src/ext/zip/tests      oo_stream.phpt 
  Log:
  - fix possible leak in addFile when an unicode filename is given
  - Mark getStream as Unicode ready, the tests was wrong
    $unistring .= fread($fpbinary); $unistring remains as unicode.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.23&r2=1.24&diff_format=u
Index: php-src/ext/zip/php_zip.c
diff -u php-src/ext/zip/php_zip.c:1.23 php-src/ext/zip/php_zip.c:1.24
--- php-src/ext/zip/php_zip.c:1.23      Tue Oct 31 14:27:09 2006
+++ php-src/ext/zip/php_zip.c   Tue Oct 31 19:03:57 2006
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_zip.c,v 1.23 2006/10/31 14:27:09 pajoye Exp $ */
+/* $Id: php_zip.c,v 1.24 2006/10/31 19:03:57 pajoye Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -990,11 +990,18 @@
        }
 
        if(!expand_filepath(filename, resolved_path TSRMLS_CC)) {
+               if (Z_TYPE_PP(filename_zval) == IS_UNICODE) {
+                       efree(entry_name);
+               }
+
                RETURN_FALSE;
        }
 
        zs = zip_source_file(intern, resolved_path, 0, 0);
        if (!zs) {
+               if (Z_TYPE_PP(filename_zval) == IS_UNICODE) {
+                       efree(entry_name);
+               }
                RETURN_FALSE;
        }
 
@@ -1817,7 +1824,7 @@
 }
 /* }}} */
 
-/* {{{ proto resource getStream(string entryname)
+/* {{{ proto resource getStream(string entryname) U
 get a stream for an entry using its name */
 ZIPARCHIVE_METHOD(getStream)
 {
@@ -1986,7 +1993,7 @@
        php_info_print_table_start();
 
        php_info_print_table_row(2, "Zip", "enabled");
-       php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.23 
2006/10/31 14:27:09 pajoye Exp $");
+       php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.24 
2006/10/31 19:03:57 pajoye Exp $");
        php_info_print_table_row(2, "Zip version", "2.0.0");
        php_info_print_table_row(2, "Libzip version", "0.7.1");
 
http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/oo_stream.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/zip/tests/oo_stream.phpt
diff -u php-src/ext/zip/tests/oo_stream.phpt:1.1 
php-src/ext/zip/tests/oo_stream.phpt:1.2
--- php-src/ext/zip/tests/oo_stream.phpt:1.1    Mon Oct 30 17:43:21 2006
+++ php-src/ext/zip/tests/oo_stream.phpt        Tue Oct 31 19:03:57 2006
@@ -2,7 +2,7 @@
 getStream
 --SKIPIF--
 <?php
-/* $Id: oo_stream.phpt,v 1.1 2006/10/30 17:43:21 pajoye Exp $ */
+/* $Id: oo_stream.phpt,v 1.2 2006/10/31 19:03:57 pajoye Exp $ */
 if(!extension_loaded('zip')) die('skip');
 ?>
 --FILE--
@@ -18,7 +18,7 @@
 
 var_dump($fp);
 if(!$fp) exit("\n");
-$contents = '';
+$contents = b'';
 while (!feof($fp)) {
        $contents .= fread($fp, 255);
 }
@@ -32,7 +32,7 @@
 if (!$fp) {
   exit("cannot open\n");
 }
-$contents = '';
+$contents = b'';
 while (!feof($fp)) {
   $contents .= fread($fp, 2);
 }

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

Reply via email to