Diff for /embedaddon/php/ext/phar/zip.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 23:47:59 version 1.1.1.2, 2013/07/22 01:31:59
Line 2 Line 2
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
   | ZIP archive support for Phar                                         |    | ZIP archive support for Phar                                         |
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
  | Copyright (c) 2007-2012 The PHP Group                                |  | Copyright (c) 2007-2013 The PHP Group                                |
   +----------------------------------------------------------------------+    +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |    | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |    | that is bundled with this package in the file LICENSE, and is        |
Line 603  foundit: Line 603  foundit:
   
                                 php_stream_filter_append(&fp->readfilters, filter);                                  php_stream_filter_append(&fp->readfilters, filter);
   
 #if PHP_MAJOR_VERSION >= 6  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {  
 #else  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {                                  if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {
 #endif  
                                         pefree(entry.filename, entry.is_persistent);                                          pefree(entry.filename, entry.is_persistent);
 #if PHP_VERSION_ID < 50207  #if PHP_VERSION_ID < 50207
                                         PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)");                                          PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)");
Line 628  foundit: Line 624  foundit:
   
                                 php_stream_filter_append(&fp->readfilters, filter);                                  php_stream_filter_append(&fp->readfilters, filter);
   
 #if PHP_MAJOR_VERSION >= 6  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {  
 #else  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {                                  if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {
 #endif  
                                         pefree(entry.filename, entry.is_persistent);                                          pefree(entry.filename, entry.is_persistent);
 #if PHP_VERSION_ID < 50207  #if PHP_VERSION_ID < 50207
                                         PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)");                                          PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)");
Line 643  foundit: Line 635  foundit:
                                 php_stream_filter_flush(filter, 1);                                  php_stream_filter_flush(filter, 1);
                                 php_stream_filter_remove(filter, 1 TSRMLS_CC);                                  php_stream_filter_remove(filter, 1 TSRMLS_CC);
                         } else {                          } else {
 #if PHP_MAJOR_VERSION >= 6  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {  
 #else  
                                 if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {                                  if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) {
 #endif  
                                         pefree(entry.filename, entry.is_persistent);                                          pefree(entry.filename, entry.is_persistent);
                                         PHAR_ZIP_FAIL("unable to read in alias, truncated");                                          PHAR_ZIP_FAIL("unable to read in alias, truncated");
                                 }                                  }
Line 949  is_compressed: Line 937  is_compressed:
                 PHAR_SET_32(local.uncompsize, entry->uncompressed_filesize);                  PHAR_SET_32(local.uncompsize, entry->uncompressed_filesize);
                 PHAR_SET_32(central.compsize, entry->compressed_filesize);                  PHAR_SET_32(central.compsize, entry->compressed_filesize);
                 PHAR_SET_32(local.compsize, entry->compressed_filesize);                  PHAR_SET_32(local.compsize, entry->compressed_filesize);
                if (p->old) {
                if (-1 == php_stream_seek(p->old, entry->offset_abs, SEEK_SET)) {                        if (-1 == php_stream_seek(p->old, entry->offset_abs, SEEK_SET)) {
                        spprintf(p->error, 0, "unable to seek to start of file \"%s\" while creating zip-based phar \"%s\"", entry->filename, entry->phar->fname);                                spprintf(p->error, 0, "unable to seek to start of file \"%s\" while creating zip-based phar \"%s\"", entry->filename, entry->phar->fname);
                        return ZEND_HASH_APPLY_STOP;                                return ZEND_HASH_APPLY_STOP;
                         }
                 }                  }
         }          }
 not_compressed:  not_compressed:
Line 1107  static int phar_zip_applysignature(phar_archive_data * Line 1096  static int phar_zip_applysignature(phar_archive_data *
                 off_t tell, st;                  off_t tell, st;
   
                 newfile = php_stream_fopen_tmpfile();                  newfile = php_stream_fopen_tmpfile();
                   if (newfile == NULL) {
                           spprintf(pass->error, 0, "phar error: unable to create temporary file for the signature file");
                           return FAILURE;
                   }
                 st = tell = php_stream_tell(pass->filefp);                  st = tell = php_stream_tell(pass->filefp);
                 /* copy the local files, central directory, and the zip comment to generate the hash */                  /* copy the local files, central directory, and the zip comment to generate the hash */
                 php_stream_seek(pass->filefp, 0, SEEK_SET);                  php_stream_seek(pass->filefp, 0, SEEK_SET);
Line 1134  static int phar_zip_applysignature(phar_archive_data * Line 1127  static int phar_zip_applysignature(phar_archive_data *
                 entry.fp = php_stream_fopen_tmpfile();                  entry.fp = php_stream_fopen_tmpfile();
                 entry.fp_type = PHAR_MOD;                  entry.fp_type = PHAR_MOD;
                 entry.is_modified = 1;                  entry.is_modified = 1;
                   if (entry.fp == NULL) {
                           spprintf(pass->error, 0, "phar error: unable to create temporary file for signature");
                           return FAILURE;
                   }
   
                 PHAR_SET_32(sigbuf, phar->sig_flags);                  PHAR_SET_32(sigbuf, phar->sig_flags);
                 PHAR_SET_32(sigbuf + 4, signature_length);                  PHAR_SET_32(sigbuf + 4, signature_length);
Line 1204  int phar_zip_flush(phar_archive_data *phar, char *user Line 1201  int phar_zip_flush(phar_archive_data *phar, char *user
         /* set alias */          /* set alias */
         if (!phar->is_temporary_alias && phar->alias_len) {          if (!phar->is_temporary_alias && phar->alias_len) {
                 entry.fp = php_stream_fopen_tmpfile();                  entry.fp = php_stream_fopen_tmpfile();
                if (entry.fp == NULL) {
                         spprintf(error, 0, "phar error: unable to create temporary file");
                         return EOF;
                 }
                 if (phar->alias_len != (int)php_stream_write(entry.fp, phar->alias, phar->alias_len)) {                  if (phar->alias_len != (int)php_stream_write(entry.fp, phar->alias, phar->alias_len)) {
                         if (error) {                          if (error) {
                                 spprintf(error, 0, "unable to set alias in zip-based phar \"%s\"", phar->fname);                                  spprintf(error, 0, "unable to set alias in zip-based phar \"%s\"", phar->fname);
Line 1252  int phar_zip_flush(phar_archive_data *phar, char *user Line 1252  int phar_zip_flush(phar_archive_data *phar, char *user
   
                         user_stub = 0;                          user_stub = 0;
   
 #if PHP_MAJOR_VERSION >= 6  
                         if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) {  
 #else  
                         if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) {                          if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) {
 #endif  
                                 if (error) {                                  if (error) {
                                         spprintf(error, 0, "unable to read resource to copy stub to new zip-based phar \"%s\"", phar->fname);                                          spprintf(error, 0, "unable to read resource to copy stub to new zip-based phar \"%s\"", phar->fname);
                                 }                                  }
Line 1283  int phar_zip_flush(phar_archive_data *phar, char *user Line 1279  int phar_zip_flush(phar_archive_data *phar, char *user
   
                 len = pos - user_stub + 18;                  len = pos - user_stub + 18;
                 entry.fp = php_stream_fopen_tmpfile();                  entry.fp = php_stream_fopen_tmpfile();
                   if (entry.fp == NULL) {
                           spprintf(error, 0, "phar error: unable to create temporary file");
                           return EOF;
                   }
                 entry.uncompressed_filesize = len + 5;                  entry.uncompressed_filesize = len + 5;
   
                 if ((size_t)len != php_stream_write(entry.fp, user_stub, len)                  if ((size_t)len != php_stream_write(entry.fp, user_stub, len)
Line 1316  int phar_zip_flush(phar_archive_data *phar, char *user Line 1316  int phar_zip_flush(phar_archive_data *phar, char *user
         } else {          } else {
                 /* Either this is a brand new phar (add the stub), or the default stub is required (overwrite the stub) */                  /* Either this is a brand new phar (add the stub), or the default stub is required (overwrite the stub) */
                 entry.fp = php_stream_fopen_tmpfile();                  entry.fp = php_stream_fopen_tmpfile();
                if (entry.fp == NULL) {
                         spprintf(error, 0, "phar error: unable to create temporary file");
                         return EOF;
                 }
                 if (sizeof(newstub)-1 != php_stream_write(entry.fp, newstub, sizeof(newstub)-1)) {                  if (sizeof(newstub)-1 != php_stream_write(entry.fp, newstub, sizeof(newstub)-1)) {
                         php_stream_close(entry.fp);                          php_stream_close(entry.fp);
                         if (error) {                          if (error) {

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>