diff options
author | kientzle <kientzle@FreeBSD.org> | 2009-04-17 00:58:44 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2009-04-17 00:58:44 +0000 |
commit | 10afcc1c3dccdff2eebc2abb25509056263d5e04 (patch) | |
tree | 3234b5e0992440bd3b547e95a26eaeb2a8c08e68 /lib/libarchive | |
parent | 1823f67ce565f4b389e6d1d672b7065b85c5ab9d (diff) | |
download | FreeBSD-src-10afcc1c3dccdff2eebc2abb25509056263d5e04.zip FreeBSD-src-10afcc1c3dccdff2eebc2abb25509056263d5e04.tar.gz |
LZW bugfix: when we hit end-of-file, return an invalid code.
Diffstat (limited to 'lib/libarchive')
-rw-r--r-- | lib/libarchive/archive_read_support_compression_compress.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libarchive/archive_read_support_compression_compress.c b/lib/libarchive/archive_read_support_compression_compress.c index a5c5f79..e115d25 100644 --- a/lib/libarchive/archive_read_support_compression_compress.c +++ b/lib/libarchive/archive_read_support_compression_compress.c @@ -278,7 +278,7 @@ compress_filter_read(struct archive_read_filter *self, const void **pblock) *p++ = *--state->stackp; } else { ret = next_code(self); - if (ret == ARCHIVE_EOF) + if (ret == -1) state->end_of_stream = ret; else if (ret != ARCHIVE_OK) return (ret); @@ -424,7 +424,7 @@ getbits(struct archive_read_filter *self, int n) = __archive_read_filter_ahead(self->upstream, 1, &ret); if (ret == 0) - return (ARCHIVE_EOF); + return (-1); if (ret < 0 || state->next_in == NULL) return (ARCHIVE_FATAL); state->avail_in = ret; |