From 637afb9b6740134b70d40ba8df4e93e36ded5b42 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Tue, 10 Nov 2015 14:16:49 +0100 Subject: [PATCH] CID-1116485: cast cidr during bit shifting and simple test included --- utils/src/main/java/com/cloud/utils/net/NetUtils.java | 2 +- utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/utils/src/main/java/com/cloud/utils/net/NetUtils.java b/utils/src/main/java/com/cloud/utils/net/NetUtils.java index 883129b20ff..e48cf299cd8 100644 --- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java +++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java @@ -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); } diff --git a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java index 1ab4459d6ac..d4d23b321e4 100644 --- a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java +++ b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java @@ -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)); + } } \ No newline at end of file