]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix a memory leak that Clang Static Analyzer pointed out.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 11 Sep 2012 11:01:02 +0000 (20:01 +0900)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Tue, 11 Sep 2012 11:01:02 +0000 (20:01 +0900)
libarchive/archive_write_set_format_xar.c

index b8c05de2ace8d08f57bcd788a8bd20f303229f8c..79667e563d7aa9844ca24634461899f09397d322 100644 (file)
@@ -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;