public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/4] fdtdec: protect against another NULL phandlep in fdtdec_add_reserved_memory()
@ 2019-10-23 14:46 Heiko Stuebner
  2019-10-23 14:46 ` [U-Boot] [PATCH v3 2/4] fdtdec: only create phandle if caller wants it " Heiko Stuebner
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Heiko Stuebner @ 2019-10-23 14:46 UTC (permalink / raw)
  To: u-boot

From: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>

The change adding fdtdec_add_reserved_memory() already protected the added
phandle against the phandlep being NULL - making the phandlep var optional.

But in the early code checking for an already existing carveout this check
was not done and thus the phandle assignment could run into trouble,
so add a check there as well, which makes the function still return
successfully if a matching region is found, even though no-one wants to
work with the phandle.

Fixes: c9222a08b3f7 ("fdtdec: Implement fdtdec_add_reserved_memory()")
Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
---
changes in v2:
- add comment about phandlep allowed to be NULL

 include/fdtdec.h | 1 +
 lib/fdtdec.c     | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/fdtdec.h b/include/fdtdec.h
index 635f53083b..54509a25ad 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -1078,6 +1078,7 @@ static inline int fdtdec_set_phandle(void *blob, int node, uint32_t phandle)
  * @param basename	base name of the node to create
  * @param carveout	information about the carveout region
  * @param phandlep	return location for the phandle of the carveout region
+ *			can be NULL
  * @return 0 on success or a negative error code on failure
  */
 int fdtdec_add_reserved_memory(void *blob, const char *basename,
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 74430c8b2f..d7c3684145 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -1363,7 +1363,8 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename,
 		}
 
 		if (addr == carveout->start && (addr + size) == carveout->end) {
-			*phandlep = fdt_get_phandle(blob, node);
+			if (phandlep)
+				*phandlep = fdt_get_phandle(blob, node);
 			return 0;
 		}
 	}
-- 
2.23.0

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

end of thread, other threads:[~2019-11-14 13:43 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-23 14:46 [U-Boot] [PATCH v3 1/4] fdtdec: protect against another NULL phandlep in fdtdec_add_reserved_memory() Heiko Stuebner
2019-10-23 14:46 ` [U-Boot] [PATCH v3 2/4] fdtdec: only create phandle if caller wants it " Heiko Stuebner
2019-11-08 14:51   ` Heiko Stübner
2019-11-14 13:42     ` sjg at google.com
2019-11-14 13:43       ` sjg at google.com
2019-10-23 14:46 ` [U-Boot] [PATCH v3 3/4] image: fdt: copy possible optee nodes to a loaded devicetree Heiko Stuebner
2019-11-14 13:43   ` Simon Glass
2019-10-23 14:46 ` [U-Boot] [PATCH v3 4/4] tests: add OP-TEE test suite Heiko Stuebner
2019-11-08 14:51   ` Heiko Stübner
2019-11-14 13:42     ` sjg at google.com
2019-11-14 13:43       ` sjg at google.com
2019-11-08 14:50 ` [U-Boot] [PATCH v3 1/4] fdtdec: protect against another NULL phandlep in fdtdec_add_reserved_memory() Heiko Stübner
2019-11-14 13:43   ` sjg at google.com

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