From: Dietmar Maurer Date: Fri, 22 Feb 2013 08:14:10 +0000 (+0100) Subject: fix bug #335: correctly verify ipv4 network masks X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=a13c6f08a36cd499fe9eb5a2aa7333ef5ff9bb92 fix bug #335: correctly verify ipv4 network masks --- diff --git a/Makefile b/Makefile index f64b467..0021ab4 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ RELEASE=2.3 VERSION=1.0 -PKGREL=46 +PKGREL=47 PACKAGE=libpve-common-perl diff --git a/data/PVE/JSONSchema.pm b/data/PVE/JSONSchema.pm index dbaffa5..4b33646 100644 --- a/data/PVE/JSONSchema.pm +++ b/data/PVE/JSONSchema.pm @@ -149,12 +149,45 @@ sub pve_verify_ipv4 { } return $ipv4; } + +my $ipv4_mask_hash = { + '128.0.0.0' => 1, + '192.0.0.0' => 2, + '224.0.0.0' => 3, + '240.0.0.0' => 4, + '248.0.0.0' => 5, + '252.0.0.0' => 6, + '254.0.0.0' => 7, + '255.0.0.0' => 8, + '255.128.0.0' => 9, + '255.192.0.0' => 10, + '255.224.0.0' => 11, + '255.240.0.0' => 12, + '255.248.0.0' => 13, + '255.252.0.0' => 14, + '255.254.0.0' => 15, + '255.255.0.0' => 16, + '255.255.128.0' => 17, + '255.255.192.0' => 18, + '255.255.224.0' => 19, + '255.255.240.0' => 20, + '255.255.248.0' => 21, + '255.255.252.0' => 22, + '255.255.254.0' => 23, + '255.255.255.0' => 24, + '255.255.255.128' => 25, + '255.255.255.192' => 26, + '255.255.255.224' => 27, + '255.255.255.240' => 28, + '255.255.255.248' => 29, + '255.255.255.252' => 30 +}; + register_format('ipv4mask', \&pve_verify_ipv4mask); sub pve_verify_ipv4mask { my ($mask, $noerr) = @_; - if ($mask !~ m/^255\.255\.(\d{1,3})\.(\d{1,3})$/ || - !(($1 <= 255) && ($2 <= 255))) { + if (!defined($ipv4_mask_hash->{$mask})) { return undef if $noerr; die "value does not look like a valid IP netmask\n"; } diff --git a/debian/changelog b/debian/changelog index 39a7261..7aa77ea 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +libpve-common-perl (1.0-47) unstable; urgency=low + + * fix bug #335: correctly verify ipv4 network masks + + -- Proxmox Support Team Fri, 22 Feb 2013 09:13:35 +0100 + libpve-common-perl (1.0-46) unstable; urgency=low * revert vlan changes