diff --git a/src/option.c b/src/option.c index 3052a4d..9ffd7fc 100644 --- a/src/option.c +++ b/src/option.c @@ -3322,7 +3322,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma if (!atoi_check(pref, &new_addr->prefixlen) || new_addr->prefixlen > 128 || - (((1<<(128-new_addr->prefixlen))-1) & addrpart) != 0) + ((((u64)1<<(128-new_addr->prefixlen))-1) & addrpart) != 0) { dhcp_config_free(new); ret_err(_("bad IPv6 prefix")); diff --git a/src/rfc3315.c b/src/rfc3315.c index 57f3f8b..b3f0a0a 100644 --- a/src/rfc3315.c +++ b/src/rfc3315.c @@ -1731,7 +1731,7 @@ static int config_valid(struct dhcp_config *config, struct dhcp_context *context addresses = 1; if (addr_list->flags & ADDRLIST_PREFIX) - addresses = 1<<(128-addr_list->prefixlen); + addresses = (u64)1<<(128-addr_list->prefixlen); if ((addr_list->flags & ADDRLIST_WILDCARD)) {