[PATCH] state: backend_bucket_circular: Do not leak memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



buf was just allocated, free it before returning an error.

Reported-by: Sam Ravnborg <sam@xxxxxxxxxxxx>
Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
---
 common/state/backend_bucket_circular.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/common/state/backend_bucket_circular.c b/common/state/backend_bucket_circular.c
index 5279ec9ce2..832f44e599 100644
--- a/common/state/backend_bucket_circular.c
+++ b/common/state/backend_bucket_circular.c
@@ -385,7 +385,7 @@ static int state_backend_bucket_circular_init(
 
 	ret = state_mtd_peb_read(circ, buf, 0, circ->max_size);
 	if (ret && ret != -EUCLEAN)
-		return ret;
+		goto out;
 
 	for (sub_offset = circ->max_size - circ->writesize; sub_offset >= 0;
 	     sub_offset -= circ->writesize) {
@@ -408,9 +408,11 @@ static int state_backend_bucket_circular_init(
 	circ->write_area = sub_offset + circ->writesize;
 	circ->last_written_length = written_length;
 
+	ret = 0;
+out:
 	free(buf);
 
-	return 0;
+	return ret;
 }
 
 static void state_backend_bucket_circular_free(struct
-- 
2.11.0


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux