From ea0893b7bbe71b28c89f35f89dfa5f4f0e6ed69d Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 24 Oct 2013 11:30:53 +0200 Subject: [PATCH] replace php patch with upstream one --- libzip-0.11-deref.patch | 26 ++++++++++++++++ libzip-0.11-php.patch | 67 ----------------------------------------- libzip.spec | 12 +++++--- 3 files changed, 34 insertions(+), 71 deletions(-) create mode 100644 libzip-0.11-deref.patch delete mode 100644 libzip-0.11-php.patch diff --git a/libzip-0.11-deref.patch b/libzip-0.11-deref.patch new file mode 100644 index 0000000..59f559a --- /dev/null +++ b/libzip-0.11-deref.patch @@ -0,0 +1,26 @@ +diff -ru libzip-0.11.1.orig/lib/zip_fclose.c libzip-0.11.1/lib/zip_fclose.c +--- libzip-0.11.1.orig/lib/zip_fclose.c 2013-08-08 11:01:26.000000000 +0200 ++++ libzip-0.11.1/lib/zip_fclose.c 2013-08-08 11:06:46.000000000 +0200 +@@ -48,14 +48,15 @@ + if (zf->src) + zip_source_free(zf->src); + +- for (i=0; iza->nfile; i++) { +- if (zf->za->file[i] == zf) { +- zf->za->file[i] = zf->za->file[zf->za->nfile-1]; +- zf->za->nfile--; +- break; ++ if (zf->za) { ++ for (i=0; iza->nfile; i++) { ++ if (zf->za->file[i] == zf) { ++ zf->za->file[i] = zf->za->file[zf->za->nfile-1]; ++ zf->za->nfile--; ++ break; ++ } ++ } + } +- } +- + ret = 0; + if (zf->error.zip_err) + ret = zf->error.zip_err; diff --git a/libzip-0.11-php.patch b/libzip-0.11-php.patch deleted file mode 100644 index dd12de9..0000000 --- a/libzip-0.11-php.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -ru libzip-0.11.1.orig/lib/zip_close.c libzip-0.11.1/lib/zip_close.c ---- libzip-0.11.1.orig/lib/zip_close.c 2013-08-08 11:01:26.000000000 +0200 -+++ libzip-0.11.1/lib/zip_close.c 2013-08-08 11:03:07.000000000 +0200 -@@ -596,18 +596,22 @@ - FILE *tfp; - - if (za->tempdir) { -- if ((temp=(char *)malloc(strlen(za->tempdir)+13)) == NULL) { -+ int len = strlen(za->tempdir)+13; -+ -+ if ((temp=(char *)malloc(len)) == NULL) { - _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } -- sprintf(temp, "%s/.zip.XXXXXX", za->tempdir); -+ snprintf(temp, len, "%s/.zip.XXXXXX", za->tempdir); - } - else { -- if ((temp=(char *)malloc(strlen(za->zn)+8)) == NULL) { -+ int len = strlen(za->zn)+8; -+ -+ if ((temp=(char *)malloc(len)) == NULL) { - _zip_error_set(&za->error, ZIP_ER_MEMORY, 0); - return NULL; - } -- sprintf(temp, "%s.XXXXXX", za->zn); -+ snprintf(temp, len, "%s.XXXXXX", za->zn); - } - - if ((tfd=mkstemp(temp)) == -1) { -diff -ru libzip-0.11.1.orig/lib/zip_fclose.c libzip-0.11.1/lib/zip_fclose.c ---- libzip-0.11.1.orig/lib/zip_fclose.c 2013-08-08 11:01:26.000000000 +0200 -+++ libzip-0.11.1/lib/zip_fclose.c 2013-08-08 11:06:46.000000000 +0200 -@@ -48,14 +48,15 @@ - if (zf->src) - zip_source_free(zf->src); - -- for (i=0; iza->nfile; i++) { -- if (zf->za->file[i] == zf) { -- zf->za->file[i] = zf->za->file[zf->za->nfile-1]; -- zf->za->nfile--; -- break; -+ if (zf->za) { -+ for (i=0; iza->nfile; i++) { -+ if (zf->za->file[i] == zf) { -+ zf->za->file[i] = zf->za->file[zf->za->nfile-1]; -+ zf->za->nfile--; -+ break; -+ } -+ } - } -- } -- - ret = 0; - if (zf->error.zip_err) - ret = zf->error.zip_err; ---- libzip-0.11.1.orig/lib/zip.h 2013-08-08 11:01:26.000000000 +0200 -+++ libzip-0.11.1/lib/zip.h 2013-08-08 11:19:57.000000000 +0200 -@@ -62,6 +62,8 @@ - #define ZIP_EXCL 2 - #define ZIP_CHECKCONS 4 - #define ZIP_TRUNCATE 8 -+/* PHP use this name, same behavior */ -+#define ZIP_OVERWRITE 8 - - - /* flags for zip_name_locate, zip_fopen, zip_stat, ... */ diff --git a/libzip.spec b/libzip.spec index 40e4493..0b10ef7 100644 --- a/libzip.spec +++ b/libzip.spec @@ -3,7 +3,7 @@ Name: libzip Version: 0.11.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: C library for reading, creating, and modifying zip archives License: BSD @@ -16,8 +16,9 @@ BuildRequires: zlib-devel # to handle multiarch headers, ex from mysql-devel package Source1: zipconf.h -# fonctionnal changes from php bundled library -Patch0: libzip-0.11-php.patch +# fix null deref in zip_fclose +# http://hg.nih.at/libzip/rev/a2f3bb7896c0 +Patch0: libzip-0.11-deref.patch %description @@ -37,7 +38,7 @@ developing applications that use %{name}. %prep %setup -q -%patch0 -p1 -b .forphp +%patch0 -p1 -b .deref # Avoid lib64 rpaths (FIXME: recheck this on newer releases) %if "%{_libdir}" != "/usr/lib" @@ -94,6 +95,9 @@ ln -s ../%{_lib}/libzip/include/zipconf.h \ %changelog +* Thu Oct 24 2013 Remi Collet - 0.11.1-3 +- replace php patch with upstream one + * Fri Aug 23 2013 Remi Collet - 0.11.1-2 - include API-CHANGES and LICENSE in package doc