From: Michihiro NAKAJIMA Date: Mon, 21 Mar 2011 20:21:39 +0000 (-0400) Subject: Properly return an error code; do not overwirte an error code with a return code X-Git-Tag: v3.0.0a~627 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ec1520fd4eab8ecef29cb95511a79abb3a60a4e;p=thirdparty%2Flibarchive.git Properly return an error code; do not overwirte an error code with a return code of __archive_write_close_filter(); Found with Clang Static Analyzer. SVN-Revision: 3045 --- diff --git a/libarchive/archive_write_add_filter_compress.c b/libarchive/archive_write_add_filter_compress.c index f8e6258eb..d42ec6ca3 100644 --- a/libarchive/archive_write_add_filter_compress.c +++ b/libarchive/archive_write_add_filter_compress.c @@ -416,7 +416,7 @@ static int archive_compressor_compress_close(struct archive_write_filter *f) { struct private_data *state = (struct private_data *)f->data; - int ret; + int ret, ret2; ret = output_code(f, state->cur_code); if (ret != ARCHIVE_OK) @@ -429,7 +429,9 @@ archive_compressor_compress_close(struct archive_write_filter *f) ret = __archive_write_filter(f->next_filter, state->compressed, state->compressed_offset); cleanup: - ret = __archive_write_close_filter(f->next_filter); + ret2 = __archive_write_close_filter(f->next_filter); + if (ret > ret2) + ret = ret2; free(state->compressed); free(state); return (ret);