diff options
Diffstat (limited to 'archival/libunarchive/check_header_gzip.c')
-rw-r--r-- | archival/libunarchive/check_header_gzip.c | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/archival/libunarchive/check_header_gzip.c b/archival/libunarchive/check_header_gzip.c deleted file mode 100644 index 66aa57460..000000000 --- a/archival/libunarchive/check_header_gzip.c +++ /dev/null @@ -1,59 +0,0 @@ -/* vi: set sw=4 ts=4: */ -/* - * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. - */ - -#include "libbb.h" -#include "unarchive.h" /* for external decl of check_header_gzip_or_die */ - -void check_header_gzip_or_die(int src_fd) -{ - union { - unsigned char raw[8]; - struct { - unsigned char method; - unsigned char flags; - unsigned int mtime; - unsigned char xtra_flags; - unsigned char os_flags; - } formatted; - } header; - - xread(src_fd, header.raw, 8); - - /* Check the compression method */ - if (header.formatted.method != 8) { - bb_error_msg_and_die("unknown compression method %d", - header.formatted.method); - } - - if (header.formatted.flags & 0x04) { - /* bit 2 set: extra field present */ - unsigned extra_short; - - extra_short = xread_char(src_fd) + (xread_char(src_fd) << 8); - while (extra_short > 0) { - /* Ignore extra field */ - xread_char(src_fd); - extra_short--; - } - } - - /* Discard original name if any */ - if (header.formatted.flags & 0x08) { - /* bit 3 set: original file name present */ - while (xread_char(src_fd) != 0); - } - - /* Discard file comment if any */ - if (header.formatted.flags & 0x10) { - /* bit 4 set: file comment present */ - while (xread_char(src_fd) != 0); - } - - /* Read the header checksum */ - if (header.formatted.flags & 0x02) { - xread_char(src_fd); - xread_char(src_fd); - } -} |