svn commit: r189294 - head/lib/libarchive
Tim Kientzle
kientzle at FreeBSD.org
Mon Mar 2 19:33:26 PST 2009
Author: kientzle
Date: Tue Mar 3 03:33:25 2009
New Revision: 189294
URL: http://svn.freebsd.org/changeset/base/189294
Log:
Merge r282 from libarchive.googlecode.com: Close multiple filters
by walking the filter list in archive_read_close().
Modified:
head/lib/libarchive/archive_read.c
head/lib/libarchive/archive_read_support_compression_compress.c
Modified: head/lib/libarchive/archive_read.c
==============================================================================
--- head/lib/libarchive/archive_read.c Tue Mar 3 03:28:09 2009 (r189293)
+++ head/lib/libarchive/archive_read.c Tue Mar 3 03:33:25 2009 (r189294)
@@ -595,11 +595,12 @@ archive_read_close(struct archive *_a)
/* TODO: Clean up the formatters. */
/* Clean up the stream pipeline. */
- if (a->source != NULL) {
+ while (a->source != NULL) {
+ struct archive_read_source *t = a->source->upstream;
r1 = (a->source->close)(a->source);
if (r1 < r)
r = r1;
- a->source = NULL;
+ a->source = t;
}
/* Release the reader objects. */
Modified: head/lib/libarchive/archive_read_support_compression_compress.c
==============================================================================
--- head/lib/libarchive/archive_read_support_compression_compress.c Tue Mar 3 03:28:09 2009 (r189293)
+++ head/lib/libarchive/archive_read_support_compression_compress.c Tue Mar 3 03:33:25 2009 (r189294)
@@ -339,7 +339,6 @@ compress_source_close(struct archive_rea
{
struct private_data *state = (struct private_data *)self->data;
- self->upstream->close(self->upstream);
free(state->out_block);
free(state);
free(self);
More information about the svn-src-all
mailing list