summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/util.inc
diff options
context:
space:
mode:
authorChris Buechler <cmb@pfsense.org>2015-12-15 20:48:23 -0600
committerChris Buechler <cmb@pfsense.org>2015-12-15 20:48:23 -0600
commit209f4d228efde46f96b1f71cb81dc0f161b64952 (patch)
tree4e3e76a8930024f7b33d1cbeb25d6e09a7644048 /src/etc/inc/util.inc
parente9701cfecfb6465ed70abd1250c6110e8690c247 (diff)
parentce9dc19873669c8bc3c420e7c57dde3d48d8e64a (diff)
downloadpfsense-209f4d228efde46f96b1f71cb81dc0f161b64952.zip
pfsense-209f4d228efde46f96b1f71cb81dc0f161b64952.tar.gz
Merge pull request #2152 from stilez/patch-12
Diffstat (limited to 'src/etc/inc/util.inc')
-rw-r--r--src/etc/inc/util.inc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc
index 875f1ee..4f13187 100644
--- a/src/etc/inc/util.inc
+++ b/src/etc/inc/util.inc
@@ -421,19 +421,24 @@ function gen_subnet_mask($bits) {
return long2ip(gen_subnet_mask_long($bits));
}
-/* Convert long int to IP address, truncating to 32-bits. */
+/* Convert long int to IPv4 address
+ Returns '' if not valid IPv4 (including if any bits >32 are non-zero) */
function long2ip32($ip) {
- return long2ip($ip & 0xFFFFFFFF);
+ return ((is_int($ip) && ($ip >> 32) == 0) ? long2ip($ip & 0xFFFFFFFF) : '');
}
-/* Convert IP address to long int, truncated to 32-bits to avoid sign extension on 64-bit platforms. */
+/* Convert IPv4 address to long int, truncated to 32-bits to avoid sign extension on 64-bit platforms.
+ Returns '' if not valid IPv4. */
function ip2long32($ip) {
- return (ip2long($ip) & 0xFFFFFFFF);
+ $a = ip2long($ip);
+ return ($a === False ? '' : $a & 0xFFFFFFFF);
}
-/* Convert IP address to unsigned long int. */
+/* Convert IPv4 address to unsigned long int.
+ Returns '' if not valid IPv4. */
function ip2ulong($ip) {
- return sprintf("%u", ip2long32($ip));
+ $a = ip2long($ip);
+ return ($a === False ? '' : sprintf("%u", $a & 0xFFFFFFFF));
}
/* Find out how many IPs are contained within a given IP range
OpenPOWER on IntegriCloud