[PATCH 1/2] of: fdt: fix length comparison

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Jun 5 04:26:06 PDT 2025


From: Steffen Trumtrar <s.trumtrar at pengutronix.de>

If haystack_len equals needle_len the following memcmp would overflow,
because needle_len is incremented in the memcmp.

Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 drivers/of/fdt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 43bb73b7a2df..5eead271edb7 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -698,7 +698,7 @@ static int fdt_string_is_compatible(const char *haystack, int haystack_len,
 	const char *p;
 	int index = 0;
 
-	while (haystack_len >= needle_len) {
+	while (haystack_len > needle_len) {
 		if (memcmp(needle, haystack, needle_len + 1) == 0)
 			return OF_DEVICE_COMPATIBLE_MAX_SCORE - (index << 2);
 
-- 
2.39.5




More information about the barebox mailing list