summaryrefslogtreecommitdiffstats
path: root/recipes-extended/tar
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/tar')
-rw-r--r--recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch23
-rw-r--r--recipes-extended/tar/tar-1.17/gcc43build.patch37
-rw-r--r--recipes-extended/tar/tar-1.17/m4extensions.patch30
-rw-r--r--recipes-extended/tar/tar.inc52
-rw-r--r--recipes-extended/tar/tar_1.17.bb14
5 files changed, 156 insertions, 0 deletions
diff --git a/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch b/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch
new file mode 100644
index 0000000..af5026f
--- /dev/null
+++ b/recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch
@@ -0,0 +1,23 @@
1Upstream-Status: Inappropriate [bugfix: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624]
2CVE: CVE-2010-0624
3
4This patch avoids heap overflow reported by :
5http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624
6
7This is a clean patch for the GPLv2 tar recipe.
8
9Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/25
10
11Index: tar-1.17/lib/rtapelib.c
12===================================================================
13--- tar-1.17.orig/lib/rtapelib.c
14+++ tar-1.17/lib/rtapelib.c
15@@ -570,7 +570,7 @@ rmt_read__ (int handle, char *buffer, si
16
17 sprintf (command_buffer, "R%lu\n", (unsigned long) length);
18 if (do_command (handle, command_buffer) == -1
19- || (status = get_status (handle)) == SAFE_READ_ERROR)
20+ || ((status = get_status (handle)) == SAFE_READ_ERROR) || (status > length))
21 return SAFE_READ_ERROR;
22
23 for (counter = 0; counter < status; counter += rlen, buffer += rlen)
diff --git a/recipes-extended/tar/tar-1.17/gcc43build.patch b/recipes-extended/tar/tar-1.17/gcc43build.patch
new file mode 100644
index 0000000..f8059a0
--- /dev/null
+++ b/recipes-extended/tar/tar-1.17/gcc43build.patch
@@ -0,0 +1,37 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Fix errors when built with gcc 4.3
4# Patch taken from Debian bug #452096
5
6diff -urN tar-1.17.orig/lib/argp-fmtstream.h tar-1.17/lib/argp-fmtstream.h
7--- tar-1.17.orig/lib/argp-fmtstream.h 2006-01-11 12:24:05.000000000 -0800
8+++ tar-1.17/lib/argp-fmtstream.h 2010-07-22 22:36:12.000000000 -0700
9@@ -198,7 +198,11 @@
10 #endif
11
12 #ifndef ARGP_FS_EI
13-#define ARGP_FS_EI extern inline
14+ #if defined __GNUC_STDC_INLINE__
15+ #define ARGP_FS_EI extern inline __attribute__((__gnu_inline__))
16+ #else
17+ #define ARGP_FS_EI extern inline
18+ #endif
19 #endif
20
21 ARGP_FS_EI size_t
22diff -urN tar-1.17.orig/lib/argp.h tar-1.17/lib/argp.h
23--- tar-1.17.orig/lib/argp.h 2007-03-30 00:09:11.000000000 -0700
24+++ tar-1.17/lib/argp.h 2010-07-22 22:38:44.000000000 -0700
25@@ -580,7 +580,11 @@
26 # endif
27
28 # ifndef ARGP_EI
29-# define ARGP_EI extern __inline__
30+# if defined __GNUC_STDC_INLINE__
31+# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__))
32+# else
33+# define ARGP_EI extern __inline__
34+# endif
35 # endif
36
37 ARGP_EI void
diff --git a/recipes-extended/tar/tar-1.17/m4extensions.patch b/recipes-extended/tar/tar-1.17/m4extensions.patch
new file mode 100644
index 0000000..30534c2
--- /dev/null
+++ b/recipes-extended/tar/tar-1.17/m4extensions.patch
@@ -0,0 +1,30 @@
1Upstream-Status: Inappropriate [licensing]
2
3# Define AC_USE_SYSTEM_EXTENSIONS only if it was previously undefined.
4# This is needed to configure correctly with newer versions of autoconf.
5
6--- tar-1.17/m4/extensions.m4.orig 2010-07-22 22:21:35.000000000 -0700
7+++ tar-1.17/m4/extensions.m4 2010-07-22 22:23:41.000000000 -0700
8@@ -1,4 +1,4 @@
9-# serial 4 -*- Autoconf -*-
10+# serial 5 -*- Autoconf -*-
11 # Enable extensions on systems that normally disable them.
12
13 # Copyright (C) 2003, 2006 Free Software Foundation, Inc.
14@@ -16,6 +16,7 @@
15 # ------------------------
16 # Enable extensions on systems that normally disable them,
17 # typically due to standards-conformance issues.
18+m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [], [
19 AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
20 [
21 AC_BEFORE([$0], [AC_COMPILE_IFELSE])
22@@ -48,7 +49,7 @@
23 AC_DEFINE([__EXTENSIONS__])
24 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
25 AC_DEFINE([_TANDEM_SOURCE])
26-])
27+])])
28
29 # gl_USE_SYSTEM_EXTENSIONS
30 # ------------------------
diff --git a/recipes-extended/tar/tar.inc b/recipes-extended/tar/tar.inc
new file mode 100644
index 0000000..93e4da1
--- /dev/null
+++ b/recipes-extended/tar/tar.inc
@@ -0,0 +1,52 @@
1SUMMARY = "GNU file archiving program"
2DESCRIPTION = "GNU tar saves many files together into a single tape \
3or disk archive, and can restore individual files from the archive."
4HOMEPAGE = "http://www.gnu.org/software/tar/"
5SECTION = "base"
6
7SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2"
8
9inherit autotools gettext texinfo
10
11EXTRA_OECONF += "DEFAULT_RMT_DIR=${base_sbindir}"
12
13# Let aclocal use the relative path for the m4 file rather than the
14# absolute since tar has a lot of m4 files, otherwise there might
15# be an "Argument list too long" error when it is built in a long/deep
16# directory.
17acpaths = "-I ./m4"
18
19do_install () {
20 autotools_do_install
21 ln -s tar ${D}${bindir}/gtar
22}
23
24do_install_append_class-target() {
25 if [ "${base_bindir}" != "${bindir}" ]; then
26 install -d ${D}${base_bindir}
27 mv ${D}${bindir}/tar ${D}${base_bindir}/tar
28 mv ${D}${bindir}/gtar ${D}${base_bindir}/gtar
29 rmdir ${D}${bindir}/
30 fi
31}
32
33PACKAGES =+ "${PN}-rmt"
34
35FILES_${PN}-rmt = "${base_sbindir}/rmt*"
36
37inherit update-alternatives
38
39ALTERNATIVE_PRIORITY = "100"
40
41ALTERNATIVE_${PN} = "tar"
42ALTERNATIVE_${PN}-rmt = "rmt"
43ALTERNATIVE_${PN}_class-nativesdk = ""
44ALTERNATIVE_${PN}-rmt_class-nativesdk = ""
45
46ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
47ALTERNATIVE_LINK_NAME[rmt] = "${base_sbindir}/rmt"
48
49PROVIDES_append_class-native = " tar-replacement-native"
50NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
51
52BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-extended/tar/tar_1.17.bb b/recipes-extended/tar/tar_1.17.bb
new file mode 100644
index 0000000..b9ca206
--- /dev/null
+++ b/recipes-extended/tar/tar_1.17.bb
@@ -0,0 +1,14 @@
1require tar.inc
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
5
6PR = "r3"
7
8SRC_URI += "file://m4extensions.patch \
9 file://gcc43build.patch \
10 file://avoid_heap_overflow.patch \
11 "
12
13SRC_URI[md5sum] = "c6c4f1c075dbf0f75c29737faa58f290"
14SRC_URI[sha256sum] = "19f9021dda51a16295e4706e80870e71f87107675e51c176a491eba0fc4ca492"