diff options
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libunarchive/decompress_unzip.c | 1 | ||||
-rw-r--r-- | archival/libunarchive/get_header_tar.c | 5 | ||||
-rw-r--r-- | archival/tar.c | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c index 0572bee68..04d6f1556 100644 --- a/archival/libunarchive/decompress_unzip.c +++ b/archival/libunarchive/decompress_unzip.c @@ -1178,6 +1178,7 @@ unpack_gz_stream(int in, int out) ALLOC_STATE; bytebuffer_max = 0x8000; bytebuffer = xmalloc(bytebuffer_max); + gunzip_src_fd = in; again: if (!check_header_gzip(PASS_STATE_ONLY)) { diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index e8ef92994..bbf088cd8 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c @@ -59,8 +59,9 @@ char get_header_tar(archive_handle_t *archive_handle) char chksum[8]; /* 148-155 */ char typeflag; /* 156-156 */ char linkname[100]; /* 157-256 */ - char magic[6]; /* 257-262 */ - char version[2]; /* 263-264 */ + /* POSIX: "ustar" NUL "00" */ + /* GNU tar: "ustar " NUL */ + char magic[8]; /* 257-264 */ char uname[32]; /* 265-296 */ char gname[32]; /* 297-328 */ char devmajor[8]; /* 329-336 */ diff --git a/archival/tar.c b/archival/tar.c index 3fe188656..aac706b96 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -50,8 +50,9 @@ struct TarHeader { /* byte offset */ char chksum[8]; /* 148-155 */ char typeflag; /* 156-156 */ char linkname[NAME_SIZE]; /* 157-256 */ - char magic[6]; /* 257-262 */ - char version[2]; /* 263-264 */ + /* POSIX: "ustar" NUL "00" */ + /* GNU tar: "ustar " NUL */ + char magic[8]; /* 257-264 */ char uname[32]; /* 265-296 */ char gname[32]; /* 297-328 */ char devmajor[8]; /* 329-336 */ |