]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Merge r989 from libarchive/trunk: Fix a problem where the
authorTim Kientzle <kientzle@gmail.com>
Tue, 14 Apr 2009 03:47:39 +0000 (23:47 -0400)
committerTim Kientzle <kientzle@gmail.com>
Tue, 14 Apr 2009 03:47:39 +0000 (23:47 -0400)
compress decompressor would loop endlessly at end-of-file.

SVN-Revision: 992

libarchive/archive_read_support_compression_compress.c

index f6c15795e5a3d8ae2d42639ff71bf14b1e47be7a..752ddda344d4f1e323962b756aa22bb4cf83fea3 100644 (file)
@@ -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;