summaryrefslogtreecommitdiff
path: root/package/busybox/patches/902-tar.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/patches/902-tar.patch')
-rw-r--r--package/busybox/patches/902-tar.patch55
1 files changed, 0 insertions, 55 deletions
diff --git a/package/busybox/patches/902-tar.patch b/package/busybox/patches/902-tar.patch
deleted file mode 100644
index d9bf7cd0c6..0000000000
--- a/package/busybox/patches/902-tar.patch
+++ /dev/null
@@ -1,55 +0,0 @@
---- a/archival/libunarchive/get_header_tar.c
-+++ b/archival/libunarchive/get_header_tar.c
-@@ -261,26 +261,33 @@
- case '0':
- #if ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY
- if (last_char_is(file_header->name, '/')) {
-- file_header->mode |= S_IFDIR;
-- } else
-+ goto set_dir;
-+ }
- #endif
- file_header->mode |= S_IFREG;
- break;
- case '2':
- file_header->mode |= S_IFLNK;
-+ /* have seen tarballs with size field containing
-+ * the size of the link target's name */
-+ size0:
-+ file_header->size = 0;
- break;
- case '3':
- file_header->mode |= S_IFCHR;
-- break;
-+ goto size0; /* paranoia */
- case '4':
- file_header->mode |= S_IFBLK;
-- break;
-+ goto size0;
- case '5':
-+#if ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY
-+ set_dir:
-+#endif
- file_header->mode |= S_IFDIR;
-- break;
-+ goto size0;
- case '6':
- file_header->mode |= S_IFIFO;
-- break;
-+ goto size0;
- #if ENABLE_FEATURE_TAR_GNU_EXTENSIONS
- case 'L':
- /* free: paranoia: tar with several consecutive longnames */
---- a/archival/libunarchive/seek_by_jump.c
-+++ b/archival/libunarchive/seek_by_jump.c
-@@ -8,7 +8,9 @@
-
- void seek_by_jump(const archive_handle_t *archive_handle, unsigned amount)
- {
-- if (lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1) {
-+ if (amount
-+ && lseek(archive_handle->src_fd, (off_t) amount, SEEK_CUR) == (off_t) -1
-+ ) {
- if (errno == ESPIPE)
- seek_by_read(archive_handle, amount);
- else