diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-06-20 11:06:42 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-06-20 11:06:42 +0200 |
commit | 984b0a613aaf1cdf48c2e2af08c8466a7bad8307 (patch) | |
tree | 57b512d3843221b92da936b46abd238d1a036a94 /archival/libarchive/decompress_gunzip.c | |
parent | ecf25cb5bce27ca5820e2895d8458f38c406d105 (diff) |
libarchive: fix xmalloc_open_zipped_read_close() on NOMMU
The somewhat new "unpack in memory" code was broken
for xmalloc_open_zipped_read_close() on NOMMU: we seek back
over signature, but then expect it to be already consumed.
Stop seeking back in this case.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/decompress_gunzip.c')
-rw-r--r-- | archival/libarchive/decompress_gunzip.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c index 20e4d9ac5..c7fa5b526 100644 --- a/archival/libarchive/decompress_gunzip.c +++ b/archival/libarchive/decompress_gunzip.c @@ -1201,7 +1201,7 @@ unpack_gz_stream(transformer_state_t *xstate) if (check_signature16(xstate, GZIP_MAGIC)) return -1; #else - if (xstate->check_signature) { + if (!xstate->signature_skipped) { uint16_t magic2; if (full_read(xstate->src_fd, &magic2, 2) != 2) { @@ -1210,7 +1210,7 @@ unpack_gz_stream(transformer_state_t *xstate) return -1; } if (magic2 == COMPRESS_MAGIC) { - xstate->check_signature = 0; + xstate->signature_skipped = 2; return unpack_Z_stream(xstate); } if (magic2 != GZIP_MAGIC) |