From d873dd4184bfee0998fa4286ade75d1f45f9bad1 Mon Sep 17 00:00:00 2001 From: Michihiro NAKAJIMA Date: Tue, 11 Sep 2012 20:01:02 +0900 Subject: [PATCH] Fix a memory leak that Clang Static Analyzer pointed out. --- libarchive/archive_write_set_format_xar.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libarchive/archive_write_set_format_xar.c b/libarchive/archive_write_set_format_xar.c index b8c05de2a..79667e563 100644 --- a/libarchive/archive_write_set_format_xar.c +++ b/libarchive/archive_write_set_format_xar.c @@ -3090,8 +3090,10 @@ save_xattrs(struct archive_write *a, struct file *file) checksum_update(&(xar->a_sumwrk), value, size); checksum_final(&(xar->a_sumwrk), &(heap->a_sum)); if (write_to_temp(a, value, size) - != ARCHIVE_OK) + != ARCHIVE_OK) { + free(heap); return (ARCHIVE_FATAL); + } heap->length = size; /* Add heap to the tail of file->xattr. */ heap->next = NULL; -- 2.47.3