From 1bc837837ff39efc06f687cbb281ce97c08e4aee Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Wed, 11 Nov 2015 10:05:47 +0100 Subject: [PATCH] CWE-190 netmask as long form cidr-size as method --- .../main/java/com/cloud/utils/net/NetUtils.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 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 28e5ab5e572..eeeb008a462 100644 --- a/utils/src/main/java/com/cloud/utils/net/NetUtils.java +++ b/utils/src/main/java/com/cloud/utils/net/NetUtils.java @@ -776,11 +776,19 @@ public class NetUtils { } public static String getCidrSubNet(final String ip, final long cidrSize) { - final long numericNetmask = ((long)0xffffffff) >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize; + final long numericNetmask = netMaskFromCidr(cidrSize); final String netmask = NetUtils.long2Ip(numericNetmask); return getSubNet(ip, netmask); } + /** + * @param cidrSize + * @return + */ + static long netMaskFromCidr(final long cidrSize) { + return ((long)0xffffffff) >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize; + } + public static String ipAndNetMaskToCidr(final String ip, final String netmask) { if (!isValidIp(ip)) { return null; @@ -882,7 +890,7 @@ public class NetUtils { throw new CloudRuntimeException("cidr is not bvalid in ip space" + cidr); } long cidrSizeNum = getCidrSizeFromString(cidrSize); - final long numericNetmask = (long)0xffffffff >> MAX_CIDR - cidrSizeNum << MAX_CIDR - cidrSizeNum; + final long numericNetmask = netMaskFromCidr(cidrSizeNum); final long ipAddr = ip2Long(cidrAddress); final Long[] cidrlong = {ipAddr & numericNetmask, (long)cidrSizeNum}; return cidrlong; @@ -922,13 +930,13 @@ public class NetUtils { return null; } long cidrSizeNum = getCidrSizeFromString(cidrSize); - final long numericNetmask = (long)0xffffffff >> MAX_CIDR - cidrSizeNum << MAX_CIDR - cidrSizeNum; + final long numericNetmask = netMaskFromCidr(cidrSizeNum); final String netmask = NetUtils.long2Ip(numericNetmask); return getSubNet(cidrAddress, netmask); } public static String getCidrNetmask(final long cidrSize) { - final long numericNetmask = (long)0xffffffff >> MAX_CIDR - cidrSize << MAX_CIDR - cidrSize; + final long numericNetmask = netMaskFromCidr(cidrSize); return long2Ip(numericNetmask); }