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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to