diff options
author | Martin Matuska <mm@FreeBSD.org> | 2019-12-31 00:05:06 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2019-12-31 00:05:06 +0000 |
commit | 79085fd3b922771b329bc3d218b6d52daab8a9a4 (patch) | |
tree | 0be388c5a494e0a83ddf62335683817eb15a27d0 /contrib/libarchive/libarchive/archive_write_add_filter_compress.c | |
parent | 140da6f8feffc58c77f66c9fca487b74ede0afa5 (diff) | |
parent | 6922acad9a482c17c7af1acdb4d11d03f19bb1dc (diff) | |
download | src-79085fd3b922771b329bc3d218b6d52daab8a9a4.tar.gz src-79085fd3b922771b329bc3d218b6d52daab8a9a4.zip |
Notes
Diffstat (limited to 'contrib/libarchive/libarchive/archive_write_add_filter_compress.c')
-rw-r--r-- | contrib/libarchive/libarchive/archive_write_add_filter_compress.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/contrib/libarchive/libarchive/archive_write_add_filter_compress.c b/contrib/libarchive/libarchive/archive_write_add_filter_compress.c index 26fcef4d42bc..d404fae7dba4 100644 --- a/contrib/libarchive/libarchive/archive_write_add_filter_compress.c +++ b/contrib/libarchive/libarchive/archive_write_add_filter_compress.c @@ -146,17 +146,12 @@ archive_write_add_filter_compress(struct archive *_a) static int archive_compressor_compress_open(struct archive_write_filter *f) { - int ret; struct private_data *state; size_t bs = 65536, bpb; f->code = ARCHIVE_FILTER_COMPRESS; f->name = "compress"; - ret = __archive_write_open_filter(f->next_filter); - if (ret != ARCHIVE_OK) - return (ret); - state = (struct private_data *)calloc(1, sizeof(*state)); if (state == NULL) { archive_set_error(f->archive, ENOMEM, @@ -426,30 +421,27 @@ static int archive_compressor_compress_close(struct archive_write_filter *f) { struct private_data *state = (struct private_data *)f->data; - int ret, ret2; + int ret; ret = output_code(f, state->cur_code); if (ret != ARCHIVE_OK) - goto cleanup; + return ret; ret = output_flush(f); if (ret != ARCHIVE_OK) - goto cleanup; + return ret; /* Write the last block */ ret = __archive_write_filter(f->next_filter, state->compressed, state->compressed_offset); -cleanup: - ret2 = __archive_write_close_filter(f->next_filter); - if (ret > ret2) - ret = ret2; - free(state->compressed); - free(state); return (ret); } static int archive_compressor_compress_free(struct archive_write_filter *f) { - (void)f; /* UNUSED */ + struct private_data *state = (struct private_data *)f->data; + + free(state->compressed); + free(state); return (ARCHIVE_OK); } |