diff options
Diffstat (limited to 'recipes-extended/tar')
-rw-r--r-- | recipes-extended/tar/tar-1.17/avoid_heap_overflow.patch | 23 | ||||
-rw-r--r-- | recipes-extended/tar/tar-1.17/gcc43build.patch | 37 | ||||
-rw-r--r-- | recipes-extended/tar/tar-1.17/m4extensions.patch | 30 | ||||
-rw-r--r-- | recipes-extended/tar/tar.inc | 52 | ||||
-rw-r--r-- | recipes-extended/tar/tar_1.17.bb | 14 |
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 @@ | |||
1 | Upstream-Status: Inappropriate [bugfix: http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624] | ||
2 | CVE: CVE-2010-0624 | ||
3 | |||
4 | This patch avoids heap overflow reported by : | ||
5 | http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0624 | ||
6 | |||
7 | This is a clean patch for the GPLv2 tar recipe. | ||
8 | |||
9 | Nitin A Kamble <nitin.a.kamble@intel.com> 2011/04/25 | ||
10 | |||
11 | Index: 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 @@ | |||
1 | Upstream-Status: Inappropriate [licensing] | ||
2 | |||
3 | # Fix errors when built with gcc 4.3 | ||
4 | # Patch taken from Debian bug #452096 | ||
5 | |||
6 | diff -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 | ||
22 | diff -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 @@ | |||
1 | Upstream-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 @@ | |||
1 | SUMMARY = "GNU file archiving program" | ||
2 | DESCRIPTION = "GNU tar saves many files together into a single tape \ | ||
3 | or disk archive, and can restore individual files from the archive." | ||
4 | HOMEPAGE = "http://www.gnu.org/software/tar/" | ||
5 | SECTION = "base" | ||
6 | |||
7 | SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2" | ||
8 | |||
9 | inherit autotools gettext texinfo | ||
10 | |||
11 | EXTRA_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. | ||
17 | acpaths = "-I ./m4" | ||
18 | |||
19 | do_install () { | ||
20 | autotools_do_install | ||
21 | ln -s tar ${D}${bindir}/gtar | ||
22 | } | ||
23 | |||
24 | do_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 | |||
33 | PACKAGES =+ "${PN}-rmt" | ||
34 | |||
35 | FILES_${PN}-rmt = "${base_sbindir}/rmt*" | ||
36 | |||
37 | inherit update-alternatives | ||
38 | |||
39 | ALTERNATIVE_PRIORITY = "100" | ||
40 | |||
41 | ALTERNATIVE_${PN} = "tar" | ||
42 | ALTERNATIVE_${PN}-rmt = "rmt" | ||
43 | ALTERNATIVE_${PN}_class-nativesdk = "" | ||
44 | ALTERNATIVE_${PN}-rmt_class-nativesdk = "" | ||
45 | |||
46 | ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar" | ||
47 | ALTERNATIVE_LINK_NAME[rmt] = "${base_sbindir}/rmt" | ||
48 | |||
49 | PROVIDES_append_class-native = " tar-replacement-native" | ||
50 | NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}" | ||
51 | |||
52 | BBCLASSEXTEND = "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 @@ | |||
1 | require tar.inc | ||
2 | |||
3 | LICENSE = "GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" | ||
5 | |||
6 | PR = "r3" | ||
7 | |||
8 | SRC_URI += "file://m4extensions.patch \ | ||
9 | file://gcc43build.patch \ | ||
10 | file://avoid_heap_overflow.patch \ | ||
11 | " | ||
12 | |||
13 | SRC_URI[md5sum] = "c6c4f1c075dbf0f75c29737faa58f290" | ||
14 | SRC_URI[sha256sum] = "19f9021dda51a16295e4706e80870e71f87107675e51c176a491eba0fc4ca492" | ||