[PATCH] state: Fix "pack" returning freed data for DTB backend

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

 



`state_backend_format_dtb_pack()` passes a buffer containing state
packed in flattened DTB format back to its caller via its `buf`
parameter.  It then frees the buffer before returning.  This means the
caller (`state_save()`) will be working on freed buffer contents before
freeing the buffer a second time itself.  Fix it by removing the
spurious call to `free()`.

This should fix a bug reported by Norbert Wiedmann in
<http://lists.infradead.org/pipermail/barebox/2017-April/029980.html>.

Cc: Norbert Wiedmann <info@xxxxxxxxxxxxx>
Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx>
---
As reported by Norbert, there is an identical bug in the "dt-utils"
package.
---
 common/state/backend_format_dtb.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/common/state/backend_format_dtb.c b/common/state/backend_format_dtb.c
index 55fa1fc59..e88cda499 100644
--- a/common/state/backend_format_dtb.c
+++ b/common/state/backend_format_dtb.c
@@ -120,8 +120,6 @@ static int state_backend_format_dtb_pack(struct state_backend_format *format,
 		of_delete_node(fdtb->root);
 	fdtb->root = root;
 
-	free(fdt);
-
 	return 0;
 }
 
-- 
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