diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2024-11-06 10:25:22 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-11-07 12:46:48 +0100 |
commit | c938d8a93e2561df1a4ac7897327456e97babb8c (patch) | |
tree | ad0c6c5bc85b846b76284bb88d1c83652441cc16 | |
parent | f6b546c6e4f036bc569df05cf76eced3f68d6db8 (diff) | |
download | passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar.gz passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar.bz2 passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar.lz passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar.xz passt-c938d8a93e2561df1a4ac7897327456e97babb8c.tar.zst passt-c938d8a93e2561df1a4ac7897327456e97babb8c.zip |
netlink: RTA_PAYLOAD() returns int, not size_t
Since it's the size of a chunk of memory it would seem logical that
RTA_PAYLOAD() returns size_t. However, it doesn't - it explicitly casts
its result to an int. RTNH_OK(), which often takes the result of
RTA_PAYLOAD() as a parameter compares it to an int, so using size_t can
result in comparison of different-signed integer warnings from clang.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r-- | netlink.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -353,7 +353,7 @@ unsigned int nl_get_ext_if(int s, sa_family_t af) */ bool nl_route_get_def_multipath(struct rtattr *rta, void *gw) { - size_t nh_len = RTA_PAYLOAD(rta); + int nh_len = RTA_PAYLOAD(rta); struct rtnexthop *rtnh; bool found = false; int hops = -1; @@ -582,7 +582,7 @@ int nl_route_dup(int s_src, unsigned int ifi_src, *(unsigned int *)RTA_DATA(rta) = ifi_dst; } else if (rta->rta_type == RTA_MULTIPATH) { - size_t nh_len = RTA_PAYLOAD(rta); + int nh_len = RTA_PAYLOAD(rta); struct rtnexthop *rtnh; for (rtnh = (struct rtnexthop *)RTA_DATA(rta); |