Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74db84e0 authored by Ethan Yonker's avatar Ethan Yonker
Browse files

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
parent 5267a216
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;
	if (buffer_status)
		buffer_status = 2;
}