summaryrefslogtreecommitdiffstats
path: root/lib/libarchive
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2009-04-17 00:58:44 +0000
committerkientzle <kientzle@FreeBSD.org>2009-04-17 00:58:44 +0000
commit10afcc1c3dccdff2eebc2abb25509056263d5e04 (patch)
tree3234b5e0992440bd3b547e95a26eaeb2a8c08e68 /lib/libarchive
parent1823f67ce565f4b389e6d1d672b7065b85c5ab9d (diff)
downloadFreeBSD-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.c4
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;
OpenPOWER on IntegriCloud