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
diff --git a/tarWrite.c b/tarWrite.c
index 9b6e721..e3963bb 100644
--- a/tarWrite.c
+++ b/tarWrite.c
@@ -88,5 +88,6 @@
void flush_libtar_buffer(int fd) {
eot_count = 0;
- buffer_status = 2;
+ if (buffer_status)
+ buffer_status = 2;
}