diff options
author | Mickael GARDET <m.gardet@overkiz.com> | 2019-09-02 09:06:01 +0200 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2019-09-02 09:06:01 +0200 |
commit | cacafeff9e17c4f67b8064db6fa87ca7efe8f291 (patch) | |
tree | 9ee7e7b67da88a17c7bcd2d8bbe772b40bfbc856 /gweb | |
parent | 799334d19606ec68b447fc2a9bbb3abbd9f25e1b (diff) | |
download | connman-cacafeff9e17c4f67b8064db6fa87ca7efe8f291.tar.gz |
gresolv: Fix ASAN runtime error
../git/gweb/gresolv.c:331:7: runtime error: left shift of 169 by 24
places cannot be represented in type 'int'
connmand2[3417]: eth0 {add} route 192.168.2.0 gw 0.0.0.0 scope 253 <LINK>
Diffstat (limited to 'gweb')
-rw-r--r-- | gweb/gresolv.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gweb/gresolv.c b/gweb/gresolv.c index 38a554e0..954e7cfe 100644 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -315,7 +315,8 @@ static int match_gai_table(struct sockaddr *sa, const struct gai_table *tbl) } } -#define DQUAD(_a,_b,_c,_d) ( ((_a)<<24) | ((_b)<<16) | ((_c)<<8) | (_d) ) +#define DQUAD(_a,_b,_c,_d) ( (((uint32_t)_a)<<24) | (((uint32_t)_b)<<16) | \ + (((uint32_t)_c)<<8) | ((uint32_t)_d) ) #define V4MATCH(addr, a,b,c,d, m) ( ((addr) ^ DQUAD(a,b,c,d)) >> (32 - (m)) ) #define RFC3484_SCOPE_LINK 2 @@ -326,7 +327,7 @@ static int addr_scope(struct sockaddr *sa) { if (sa->sa_family == AF_INET) { struct sockaddr_in *sin = (void *)sa; - guint32 addr = ntohl(sin->sin_addr.s_addr); + uint32_t addr = ntohl(sin->sin_addr.s_addr); if (V4MATCH(addr, 169,254,0,0, 16) || V4MATCH(addr, 127,0,0,0, 8)) |