[arch-commits] Commit in libtar/trunk (4 files)

Giovanni Scafora giovanni at nymeria.archlinux.org
Sat Oct 12 18:57:52 UTC 2013


    Date: Saturday, October 12, 2013 @ 20:57:52
  Author: giovanni
Revision: 196403

upgpkg: libtar 1.2.20-1

libtar 1.2.20 released, fix CVE-2013-4397

Added:
  libtar/trunk/libtar-1.2.20-free.patch
Modified:
  libtar/trunk/PKGBUILD
Deleted:
  libtar/trunk/libtar-1.2.11-tar_header.patch
  libtar/trunk/libtar-1.2.11.patch

--------------------------------+
 PKGBUILD                       |   40 ++++++++------
 libtar-1.2.11-tar_header.patch |   15 -----
 libtar-1.2.11.patch            |  108 ---------------------------------------
 libtar-1.2.20-free.patch       |   22 +++++++
 4 files changed, 45 insertions(+), 140 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-10-12 17:41:01 UTC (rev 196402)
+++ PKGBUILD	2013-10-12 18:57:52 UTC (rev 196403)
@@ -5,36 +5,42 @@
 # Contributor: Aurelien Foret <orelien at chez.com>
 
 pkgname=libtar
-pkgver=1.2.11
-pkgrel=4
+pkgver=1.2.20
+pkgrel=1
 pkgdesc="C library for manipulating POSIX tar files"
 arch=('i686' 'x86_64')
-url="http://www.feep.net/libtar/"
+url="http://repo.or.cz/w/libtar.git/"
 license=('BSD')
 depends=('zlib')
-source=("ftp://ftp.feep.net/pub/software/${pkgname}/${pkgname}-${pkgver}.tar.gz"
-        'libtar-1.2.11-tar_header.patch'
-        'libtar-1.2.11.patch')
-md5sums=('604238e8734ce6e25347a58c4f1a1d7e'
-         '94b03c0fdee20671e1f6d1ecaf187258'   
-         'baef7da841c186e1830566296859c35b')
+options=('!libtool')
+source=("http://pkgbuild.com/~giovanni/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+        'libtar-1.2.20-free.patch')
+md5sums=('32cd952ff74f1c78c06ffff5c0695b90'
+         '00c2d03a3c13e4b6bc6c3b30a4db9f64')
 
+prepare() {
+  cd "${srcdir}/${pkgname}"
+
+  patch -Np0 -i "${srcdir}/libtar-1.2.20-free.patch"
+  sed -i \
+      -e '/INSTALL_PROGRAM/s:-s::' {doc,lib{,tar}}/Makefile.in
+}
+
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
-
+  cd "${srcdir}/${pkgname}"
   export CFLAGS+=" -fPIC"
 
-  # Fix FS#29322
-  patch -Np1 -i "${srcdir}/libtar-1.2.11-tar_header.patch"
-
-  patch -Np1 -i "${srcdir}/libtar-1.2.11.patch"
+  autoreconf -fi
   ./configure --prefix=/usr \
-              --mandir=/usr/share/man
+              --mandir=/usr/share/man \
+              --disable-static \
+              --disable-encap \
+              --disable-epkg-install
   make
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd "${srcdir}/${pkgname}"
 
   make DESTDIR="${pkgdir}" install
   install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

Deleted: libtar-1.2.11-tar_header.patch
===================================================================
--- libtar-1.2.11-tar_header.patch	2013-10-12 17:41:01 UTC (rev 196402)
+++ libtar-1.2.11-tar_header.patch	2013-10-12 18:57:52 UTC (rev 196403)
@@ -1,15 +0,0 @@
-diff -Naur libtar-1.2.11/lib/encode.c libtar-1.2.11.tar_header/lib/encode.c
---- libtar-1.2.11/lib/encode.c	2003-01-07 07:10:59.000000000 +0530
-+++ libtar-1.2.11.tar_header/lib/encode.c	2009-11-20 11:13:25.166756167 +0530
-@@ -30,7 +30,10 @@
- 	int i, sum = 0;
- 
- 	if (t->options & TAR_GNU)
--		strncpy(t->th_buf.magic, "ustar  ", 8);
-+	{
-+		memcpy(t->th_buf.magic, "ustar ", 6);
-+		memcpy(t->th_buf.version, " \0", 2);
-+	}
- 	else
- 	{
- 		strncpy(t->th_buf.version, TVERSION, TVERSLEN);

Deleted: libtar-1.2.11.patch
===================================================================
--- libtar-1.2.11.patch	2013-10-12 17:41:01 UTC (rev 196402)
+++ libtar-1.2.11.patch	2013-10-12 18:57:52 UTC (rev 196403)
@@ -1,108 +0,0 @@
-diff -Naur libtar-1.2.11-orig/lib/decode.c libtar-1.2.11/lib/decode.c
---- libtar-1.2.11-orig/lib/decode.c	2003-01-06 17:40:59.000000000 -0800
-+++ libtar-1.2.11/lib/decode.c	2004-08-13 12:26:34.000000000 -0700
-@@ -26,7 +26,7 @@
- char *
- th_get_pathname(TAR *t)
- {
--	char filename[MAXPATHLEN];
-+	static char filename[MAXPATHLEN];
- 
- 	if (t->th_buf.gnu_longname)
- 		return t->th_buf.gnu_longname;
-@@ -35,11 +35,11 @@
- 	{
- 		snprintf(filename, sizeof(filename), "%.155s/%.100s",
- 			 t->th_buf.prefix, t->th_buf.name);
--		return strdup(filename);
-+		return filename;
- 	}
- 
- 	snprintf(filename, sizeof(filename), "%.100s", t->th_buf.name);
--	return strdup(filename);
-+	return filename;
- }
- 
- 
-diff -Naur libtar-1.2.11-orig/lib/extract.c libtar-1.2.11/lib/extract.c
---- libtar-1.2.11-orig/lib/extract.c	2003-03-02 15:58:07.000000000 -0800
-+++ libtar-1.2.11/lib/extract.c	2004-08-13 12:26:34.000000000 -0700
-@@ -28,14 +28,6 @@
- #endif
- 
- 
--struct linkname
--{
--	char ln_save[MAXPATHLEN];
--	char ln_real[MAXPATHLEN];
--};
--typedef struct linkname linkname_t;
--
--
- static int
- tar_set_file_perms(TAR *t, char *realname)
- {
-@@ -98,7 +90,9 @@
- tar_extract_file(TAR *t, char *realname)
- {
- 	int i;
--	linkname_t *lnp;
-+	char *lnp;
-+	int pathname_len;
-+	int realname_len;
- 
- 	if (t->options & TAR_NOOVERWRITE)
- 	{
-@@ -137,11 +131,13 @@
- 	if (i != 0)
- 		return i;
- 
--	lnp = (linkname_t *)calloc(1, sizeof(linkname_t));
-+	pathname_len = strlen(th_get_pathname(t)) + 1;
-+	realname_len = strlen(realname) + 1;
-+	lnp = (char *)calloc(1, pathname_len + realname_len);
- 	if (lnp == NULL)
- 		return -1;
--	strlcpy(lnp->ln_save, th_get_pathname(t), sizeof(lnp->ln_save));
--	strlcpy(lnp->ln_real, realname, sizeof(lnp->ln_real));
-+	strcpy(&lnp[0], th_get_pathname(t));
-+	strcpy(&lnp[pathname_len], realname);
- #ifdef DEBUG
- 	printf("tar_extract_file(): calling libtar_hash_add(): key=\"%s\", "
- 	       "value=\"%s\"\n", th_get_pathname(t), realname);
-@@ -288,7 +284,7 @@
- {
- 	char *filename;
- 	char *linktgt = NULL;
--	linkname_t *lnp;
-+	char *lnp;
- 	libtar_hashptr_t hp;
- 
- 	if (!TH_ISLNK(t))
-@@ -304,8 +300,8 @@
- 	if (libtar_hash_getkey(t->h, &hp, th_get_linkname(t),
- 			       (libtar_matchfunc_t)libtar_str_match) != 0)
- 	{
--		lnp = (linkname_t *)libtar_hashptr_data(&hp);
--		linktgt = lnp->ln_real;
-+		lnp = (char *)libtar_hashptr_data(&hp);
-+		linktgt = &lnp[strlen(lnp) + 1];
- 	}
- 	else
- 		linktgt = th_get_linkname(t);
-diff -Naur libtar-1.2.11-orig/lib/libtar.h libtar-1.2.11/lib/libtar.h
---- libtar-1.2.11-orig/lib/libtar.h	2003-01-06 17:40:59.000000000 -0800
-+++ libtar-1.2.11/lib/libtar.h	2004-08-13 12:26:52.000000000 -0700
-@@ -63,9 +63,9 @@
- /***** handle.c ************************************************************/
- 
- typedef int (*openfunc_t)(const char *, int, ...);
--typedef int (*closefunc_t)(int);
--typedef ssize_t (*readfunc_t)(int, void *, size_t);
--typedef ssize_t (*writefunc_t)(int, const void *, size_t);
-+typedef int (*closefunc_t)(long);
-+typedef ssize_t (*readfunc_t)(long, void *, size_t);
-+typedef ssize_t (*writefunc_t)(long, const void *, size_t);
- 
- typedef struct
- {

Added: libtar-1.2.20-free.patch
===================================================================
--- libtar-1.2.20-free.patch	                        (rev 0)
+++ libtar-1.2.20-free.patch	2013-10-12 18:57:52 UTC (rev 196403)
@@ -0,0 +1,22 @@
+stdlib.h is required for free()
+
+--- lib/output.c
++++ lib/output.c
+@@ -20,6 +20,7 @@
+ #include <sys/param.h>
+ 
+ #ifdef STDC_HEADERS
++# include <stdlib.h>
+ # include <string.h>
+ #endif
+ 
+--- lib/wrapper.c
++++ lib/wrapper.c
+@@ -18,6 +18,7 @@
+ #include <errno.h>
+ 
+ #ifdef STDC_HEADERS
++# include <stdlib.h>
+ # include <string.h>
+ #endif
+ 




More information about the arch-commits mailing list