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