Fail silently on failure to read tar header, its unfortunate that many tar implementations must be adding unwanted crap to the end of their archives.
It makes error reporting here more trouble than its worth
diff --git a/libbb/unarchive.c b/libbb/unarchive.c
index 78260d2..adc5d8d 100644
--- a/libbb/unarchive.c
+++ b/libbb/unarchive.c
@@ -492,7 +492,9 @@
}
if (fread(tar.raw, 1, 512, tar_stream) != 512) {
- error_msg("Couldnt read header");
+ /* Unfortunatly its common for tar files to have all sorts of
+ * trailing garbage, fail silently */
+// error_msg("Couldnt read header");
return(NULL);
}
archive_offset += 512;