mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
upgrade busybox to v1.11.1 and add current upstream fixes
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12348 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
55
package/busybox/patches/902-tar.patch
Normal file
55
package/busybox/patches/902-tar.patch
Normal file
@@ -0,0 +1,55 @@
|
||||
--- 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
|
||||
Reference in New Issue
Block a user