From: Andre Przywara <andre.przyw...@arm.com>

With -Wsign-compare, compilers warn about a mismatching signedness in
comparisons in fdt_get_string().

Introduce a new usigned variable, which holds the actual (negated)
stroffset value, so we avoid negating all the other variables and have
proper types everywhere.

Signed-off-by: Andre Przywara <andre.przyw...@arm.com>
Message-Id: <20201001164630.4980-6-andre.przyw...@arm.com>
Signed-off-by: David Gibson <da...@gibson.dropbear.id.au>
---
 cpukit/dtc/libfdt/fdt_ro.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/cpukit/dtc/libfdt/fdt_ro.c b/cpukit/dtc/libfdt/fdt_ro.c
index e19218422f..91cc6fefe3 100644
--- a/cpukit/dtc/libfdt/fdt_ro.c
+++ b/cpukit/dtc/libfdt/fdt_ro.c
@@ -67,11 +67,13 @@ const char *fdt_get_string(const void *fdt, int stroffset, 
int *lenp)
                                len = fdt_size_dt_strings(fdt) - stroffset;
                }
        } else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
-               if ((stroffset >= 0)
-                   || (stroffset < -fdt_size_dt_strings(fdt)))
+               unsigned int sw_stroffset = -stroffset;
+
+               if ((stroffset >= 0) ||
+                   (sw_stroffset > fdt_size_dt_strings(fdt)))
                        goto fail;
-               if ((-stroffset) < len)
-                       len = -stroffset;
+               if (sw_stroffset < len)
+                       len = sw_stroffset;
        } else {
                err = -FDT_ERR_INTERNAL;
                goto fail;
-- 
2.31.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to