mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/1] libfdt: check return value of fdt_num_mem_rsv() in fdt_pack()
@ 2024-07-01 21:54 Heinrich Schuchardt
  2024-07-02 12:54 ` [PATCH] " Markus Elfring
  2024-07-02 17:31 ` [PATCH 1/1] " Rob Herring
  0 siblings, 2 replies; 6+ messages in thread
From: Heinrich Schuchardt @ 2024-07-01 21:54 UTC (permalink / raw)
  To: Rob Herring, Saravana Kannan
  Cc: devicetree, linux-kernel, Heinrich Schuchardt

fdt_num_mem_rsv() may return -FDT_ERR_TRUNCATED.
In this case fdt_pack() should propagate the error code.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
 libfdt/fdt_rw.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libfdt/fdt_rw.c b/libfdt/fdt_rw.c
index 3621d36..a307701 100644
--- a/libfdt/fdt_rw.c
+++ b/libfdt/fdt_rw.c
@@ -490,8 +490,11 @@ int fdt_pack(void *fdt)
 
 	FDT_RW_PROBE(fdt);
 
-	mem_rsv_size = (fdt_num_mem_rsv(fdt)+1)
-		* sizeof(struct fdt_reserve_entry);
+	mem_rsv_size = fdt_num_mem_rsv(fdt);
+	if (mem_rsv_size < 0)
+		return mem_rsv_size;
+
+	mem_rsv_size = (mem_rsv_size + 1) * sizeof(struct fdt_reserve_entry);
 	fdt_packblocks_(fdt, fdt, mem_rsv_size, fdt_size_dt_struct(fdt),
 			fdt_size_dt_strings(fdt));
 	fdt_set_totalsize(fdt, fdt_data_size_(fdt));
-- 
2.45.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-07-03  8:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-07-01 21:54 [PATCH 1/1] libfdt: check return value of fdt_num_mem_rsv() in fdt_pack() Heinrich Schuchardt
2024-07-02 12:54 ` [PATCH] " Markus Elfring
2024-07-02 20:27   ` Heinrich Schuchardt
2024-07-03  8:43     ` Markus Elfring
2024-07-02 17:31 ` [PATCH 1/1] " Rob Herring
2024-07-02 20:31   ` Heinrich Schuchardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®