From 74db84e026208670510b6bbef42a08331b0e8439 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Mon, 1 Jun 2015 09:55:00 -0500 Subject: Fix double free crash during encrypted backups Calling flush_libtar_buffer would inadvertantly set buffer_status when no buffer is currently allocated. Later when we called free_libtar_buffer, this would attempt to free the write_buffer and cause a crash. This patch checks the value of buffer_status in flush_libtar_buffer to prevent us from freeing the buffer when it is not necessary. Change-Id: Ic5b462fe5881be6e9c6fcc355b369bc90477f737 --- tarWrite.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tarWrite.c b/tarWrite.c index 9b6e7217a..e3963bbeb 100644 --- a/tarWrite.c +++ b/tarWrite.c @@ -88,5 +88,6 @@ ssize_t write_libtar_buffer(int fd, const void *buffer, size_t size) { void flush_libtar_buffer(int fd) { eot_count = 0; - buffer_status = 2; + if (buffer_status) + buffer_status = 2; } -- cgit v1.2.3