summaryrefslogtreecommitdiffstats
path: root/lib/libarchive
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2005-03-02 05:34:05 +0000
committerkientzle <kientzle@FreeBSD.org>2005-03-02 05:34:05 +0000
commit7c8883e740cf42c03464cda62e3cc29490b429cd (patch)
treeef89ebccbe637b0d0b21929246f74020178f5594 /lib/libarchive
parent91d219a0017f22b4ccb2e1266165c6b99536273a (diff)
downloadFreeBSD-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.c2
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;
}
OpenPOWER on IntegriCloud