From: Michihiro NAKAJIMA Date: Sun, 1 Feb 2009 09:05:40 +0000 (-0500) Subject: Fix initialize stream.avail_in and error handling. X-Git-Tag: v2.7.0~365 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cf3c5168386fd593cf5c5c35fa915dd8bce839d3;p=thirdparty%2Flibarchive.git Fix initialize stream.avail_in and error handling. SVN-Revision: 528 --- diff --git a/libarchive/archive_read_support_compression_xz.c b/libarchive/archive_read_support_compression_xz.c index 33436148b..60a31ed51 100644 --- a/libarchive/archive_read_support_compression_xz.c +++ b/libarchive/archive_read_support_compression_xz.c @@ -295,7 +295,7 @@ xz_lzma_bidder_init(struct archive_read_filter *self, int code) self->close = xz_filter_close; state->stream.next_in = buff; - state->stream.avail_in = ret; + state->stream.avail_in = 0; state->stream.next_out = state->out_block; state->stream.avail_out = state->out_block_size; @@ -391,30 +391,30 @@ xz_filter_read(struct archive_read_filter *self, const void **p) archive_set_error(&self->archive->archive, ENOMEM, "Internal error decompressing compression library: " "Cannot allocate memory"); - break; + return (ARCHIVE_FATAL); case LZMA_MEMLIMIT_ERROR: archive_set_error(&self->archive->archive, ENOMEM, "Internal error decompressing compression library: " "Memory usage limit was reached"); - break; + return (ARCHIVE_FATAL); case LZMA_FORMAT_ERROR: archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, "Internal error decompressing compression library: " "File format not recognized"); - break; + return (ARCHIVE_FATAL); case LZMA_OPTIONS_ERROR: archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, "Internal error decompressing compression library: " "Invalid or unsupported options"); - break; + return (ARCHIVE_FATAL); case LZMA_DATA_ERROR: archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC, "Internal error decompressing compression library: " "Data is corrupt"); - break; + return (ARCHIVE_FATAL); case LZMA_BUF_ERROR: archive_set_error(&self->archive->archive, ARCHIVE_ERRNO_MISC,