replace php patch with upstream one

This commit is contained in:
Remi Collet 2013-10-24 11:30:53 +02:00
parent 3422a4f129
commit ea0893b7bb
3 changed files with 34 additions and 71 deletions

26
libzip-0.11-deref.patch Normal file
View File

@ -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; i<zf->za->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; i<zf->za->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;

View File

@ -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; i<zf->za->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; i<zf->za->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, ... */

View File

@ -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 <remi@fedoraproject.org> - 0.11.1-3
- replace php patch with upstream one
* Fri Aug 23 2013 Remi Collet <remi@fedoraproject.org> - 0.11.1-2
- include API-CHANGES and LICENSE in package doc