diff options
author | kientzle <kientzle@FreeBSD.org> | 2005-03-02 05:34:05 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2005-03-02 05:34:05 +0000 |
commit | 7c8883e740cf42c03464cda62e3cc29490b429cd (patch) | |
tree | ef89ebccbe637b0d0b21929246f74020178f5594 /lib/libarchive | |
parent | 91d219a0017f22b4ccb2e1266165c6b99536273a (diff) | |
download | FreeBSD-src-7c8883e740cf42c03464cda62e3cc29490b429cd.zip FreeBSD-src-7c8883e740cf42c03464cda62e3cc29490b429cd.tar.gz |
Use correct byte order when parsing the size of the gzip "Extra data" field.
In particular, this correctly allows bsdtar (and pkg_add) to skip
package signatures.
Thanks to: Theo Schlossnagle
Diffstat (limited to 'lib/libarchive')
-rw-r--r-- | lib/libarchive/archive_read_support_compression_gzip.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libarchive/archive_read_support_compression_gzip.c b/lib/libarchive/archive_read_support_compression_gzip.c index 50da5ba..8a80866 100644 --- a/lib/libarchive/archive_read_support_compression_gzip.c +++ b/lib/libarchive/archive_read_support_compression_gzip.c @@ -426,7 +426,7 @@ drive_decompressor(struct archive *a, struct private_data *state) */ case 11: /* Optional Extra: Second byte of Length. */ if ((flags & 4)) { - count = (count << 8) | (255 & (int)b); + count = (0xff00 & ((int)b << 8)) | count; header_state = 12; break; } |