summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_read_support_format_cpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libarchive/archive_read_support_format_cpio.c')
-rw-r--r--lib/libarchive/archive_read_support_format_cpio.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libarchive/archive_read_support_format_cpio.c b/lib/libarchive/archive_read_support_format_cpio.c
index 5ddc4f1..9abeeca 100644
--- a/lib/libarchive/archive_read_support_format_cpio.c
+++ b/lib/libarchive/archive_read_support_format_cpio.c
@@ -83,16 +83,21 @@ int
archive_read_support_format_cpio(struct archive *a)
{
struct cpio *cpio;
+ int r;
cpio = malloc(sizeof(*cpio));
memset(cpio, 0, sizeof(*cpio));
cpio->magic = CPIO_MAGIC;
- return (__archive_read_register_format(a,
+ r = __archive_read_register_format(a,
cpio,
archive_read_format_cpio_bid,
archive_read_format_cpio_read_header,
- archive_read_format_cpio_cleanup));
+ archive_read_format_cpio_cleanup);
+
+ if (r != ARCHIVE_OK)
+ free(cpio);
+ return (ARCHIVE_OK);
}
OpenPOWER on IntegriCloud