aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2021-06-11 18:10:38 +0100
committerDavid Gibson <david@gibson.dropbear.id.au>2021-06-15 12:49:23 +1000
commitecfb438c07fa468a129e81c7d84c7c293c7b0150 (patch)
tree474a96104af9cef80245f0498a398620d5371cc3
parent5bec74a6d13519381a40b5433ede7849a75a8d79 (diff)
downloaddtc-ecfb438c07fa468a129e81c7d84c7c293c7b0150.tar.gz
dtc: Fix signedness comparisons warnings: pointer diff
With -Wsign-compare, compilers warn about a mismatching signedness in comparisons in the function get_node_by_path(). Taking the difference between two pointers results in a signed ptrdiff_t type, which mismatches the unsigned type returned by strlen(). Since "p" has been returned by a call to strchr() with "path" as its argument, we know for sure that it's bigger than "path", so the difference must be positive. So a cast to an unsigned type is valid. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Message-Id: <20210611171040.25524-7-andre.przywara@arm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--livetree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/livetree.c b/livetree.c
index 7eacd02..dfbae65 100644
--- a/livetree.c
+++ b/livetree.c
@@ -526,7 +526,7 @@ struct node *get_node_by_path(struct node *tree, const char *path)
p = strchr(path, '/');
for_each_child(tree, child) {
- if (p && strprefixeq(path, p - path, child->name))
+ if (p && strprefixeq(path, (size_t)(p - path), child->name))
return get_node_by_path(child, p+1);
else if (!p && streq(path, child->name))
return child;