Mercurial > hg > aboriginal
changeset 219:11e99cacb09e
Fix the old busybox tar so it can extract linux kernel tarballs.
author | Rob Landley <rob@landley.net> |
---|---|
date | Mon, 17 Sep 2007 21:58:21 -0500 |
parents | 08138aee2110 |
children | 8d2d0feff1ef |
files | sources/patches/busybox-fixtar.patch |
diffstat | 1 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/patches/busybox-fixtar.patch Mon Sep 17 21:58:21 2007 -0500 @@ -0,0 +1,33 @@ +--- busybox-1.2.2/archival/libunarchive/get_header_tar.c 2006-07-28 17:53:44.000000000 -0500 ++++ busybox-new/archival/libunarchive/get_header_tar.c 2007-09-17 21:50:44.000000000 -0500 +@@ -51,6 +51,7 @@ + long sum = 0; + long i; + static int end = 0; ++ int skippy = 0; + + /* Align header */ + data_align(archive_handle, 512); +@@ -183,10 +184,12 @@ + case 'N': /* Old GNU for names > 100 characters */ + case 'S': /* Sparse file */ + case 'V': /* Volume header */ ++ bb_error_msg("Ignoring extension type %c", tar.formated.typeflag); ++ break; + #endif + case 'g': /* pax global header */ + case 'x': /* pax extended header */ +- bb_error_msg("Ignoring extension type %c", tar.formated.typeflag); ++ skippy = 1; + break; + default: + bb_error_msg("Unknown typeflag: 0x%x", tar.formated.typeflag); +@@ -199,7 +202,7 @@ + } + } + +- if (archive_handle->filter(archive_handle) == EXIT_SUCCESS) { ++ if (!skippy && archive_handle->filter(archive_handle) == EXIT_SUCCESS) { + archive_handle->action_header(archive_handle->file_header); + archive_handle->flags |= ARCHIVE_EXTRACT_QUIET; + archive_handle->action_data(archive_handle);