diff options
Diffstat (limited to 'package/busybox/patches/902-tar.patch')
-rw-r--r-- | package/busybox/patches/902-tar.patch | 55 |
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 |