From f9d5c6918cf5f0b7c5524b4c2d421c84f3eb55ab Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Tue, 10 Nov 2015 14:54:52 +0100 Subject: [PATCH] CID-1116483 cidr to netmask bitshifts guarded with casts and simple test --- utils/src/main/java/com/cloud/utils/net/NetUtils.java | 2 +- .../src/test/java/com/cloud/utils/net/NetUtilsTest.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) 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 6da867d386a..b0eb2f2faab 100644 --- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java +++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java @@ -921,7 +921,7 @@ public class NetUtils { } public static String getCidrNetmask(final long cidrSize) { - final long numericNetmask = 0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize; + final long numericNetmask = (long)0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize; return long2Ip(numericNetmask); } 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 1f948d2d032..76fc4fa89fb 100644 --- a/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java +++ b/utils/src/test/java/com/cloud/utils/net/NetUtilsTest.java @@ -419,6 +419,13 @@ public class NetUtilsTest { assertTrue("It should pass! 31 bit prefix.", is31PrefixCidr); } + @Test + public void testGetCidrNetMask() { + final String cidr = "10.10.0.0/16"; + String netmask = NetUtils.getCidrNetmask("10.10.10.10/16"); + assertTrue(cidr + " does not generate valid netmask " + netmask,NetUtils.isValidNetmask(netmask)); + } + @Test public void testGetCidrSubNet() { final String cidr = "10.10.0.0/16"; @@ -430,6 +437,6 @@ public class NetUtilsTest { public void testGetCidrSubNetWithWidth() { final String cidr = "10.10.0.0/16"; String subnet = NetUtils.getCidrSubNet("10.10.10.10", 16); - assertTrue(NetUtils.isIpWithtInCidrRange(subnet, cidr)); + assertTrue(cidr + " does not contain " + subnet,NetUtils.isIpWithtInCidrRange(subnet, cidr)); } } \ No newline at end of file