CID-1116485: cast cidr during bit shifting

and simple test included
This commit is contained in:
Daan Hoogland 2015-11-10 14:16:49 +01:00
parent b5625c05d0
commit 637afb9b67
2 changed files with 7 additions and 1 deletions

View File

@ -775,7 +775,7 @@ public class NetUtils {
}
public static String getCidrSubNet(final String ip, final long cidrSize) {
final long numericNetmask = 0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize;
final long numericNetmask = ((long)0xffffffff) >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize;
final String netmask = NetUtils.long2Ip(numericNetmask);
return getSubNet(ip, netmask);
}

View File

@ -418,4 +418,10 @@ public class NetUtilsTest {
assertTrue("It should pass! 31 bit prefix.", is31PrefixCidr);
}
@Test
public void testGetCidrSubNet() {
final String cidr = "10.10.0.0/16";
String subnet = NetUtils.getCidrSubNet("10.10.10.10", 16);
assertTrue(NetUtils.isIpWithtInCidrRange(subnet, cidr));
}
}