diff options
author | Andre Przywara <andre.przywara@arm.com> | 2021-06-11 18:10:38 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2021-06-15 12:49:23 +1000 |
commit | ecfb438c07fa468a129e81c7d84c7c293c7b0150 (patch) | |
tree | 474a96104af9cef80245f0498a398620d5371cc3 | |
parent | 5bec74a6d13519381a40b5433ede7849a75a8d79 (diff) | |
download | dtc-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; |