summaryrefslogtreecommitdiff
path: root/gweb
diff options
context:
space:
mode:
authorMickael GARDET <m.gardet@overkiz.com>2019-09-02 09:06:01 +0200
committerDaniel Wagner <wagi@monom.org>2019-09-02 09:06:01 +0200
commitcacafeff9e17c4f67b8064db6fa87ca7efe8f291 (patch)
tree9ee7e7b67da88a17c7bcd2d8bbe772b40bfbc856 /gweb
parent799334d19606ec68b447fc2a9bbb3abbd9f25e1b (diff)
downloadconnman-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.c5
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))