From: Tim Kientzle Date: Tue, 10 Jan 2012 04:49:19 +0000 (-0500) Subject: Allow archive_*_free(NULL) to succeed. X-Git-Tag: v3.0.4~2^2~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29f8ac3ead730c9d392f919929cb75d9633da20e;p=thirdparty%2Flibarchive.git Allow archive_*_free(NULL) to succeed. SVN-Revision: 4106 --- diff --git a/libarchive/archive_virtual.c b/libarchive/archive_virtual.c index 752dc17c2..83089f27f 100644 --- a/libarchive/archive_virtual.c +++ b/libarchive/archive_virtual.c @@ -69,6 +69,8 @@ archive_read_close(struct archive *a) int archive_write_free(struct archive *a) { + if (a == NULL) + return (ARCHIVE_OK); return ((a->vtable->archive_free)(a)); } @@ -77,13 +79,15 @@ archive_write_free(struct archive *a) int archive_write_finish(struct archive *a) { - return ((a->vtable->archive_free)(a)); + return archive_write_free(a); } #endif int archive_read_free(struct archive *a) { + if (a == NULL) + return (ARCHIVE_OK); return ((a->vtable->archive_free)(a)); } @@ -92,7 +96,7 @@ archive_read_free(struct archive *a) int archive_read_finish(struct archive *a) { - return ((a->vtable->archive_free)(a)); + return archive_read_free(a); } #endif