fix bug #335: correctly verify ipv4 network masks
authorDietmar Maurer <dietmar@proxmox.com>
Fri, 22 Feb 2013 08:14:10 +0000 (09:14 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Fri, 22 Feb 2013 08:14:10 +0000 (09:14 +0100)
Makefile
data/PVE/JSONSchema.pm
debian/changelog

index f64b467..0021ab4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 RELEASE=2.3
 
 VERSION=1.0
-PKGREL=46
+PKGREL=47
 
 PACKAGE=libpve-common-perl
 
index dbaffa5..4b33646 100644 (file)
@@ -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";
     }
index 39a7261..7aa77ea 100644 (file)
@@ -1,3 +1,9 @@
+libpve-common-perl (1.0-47) unstable; urgency=low
+
+  * fix bug #335: correctly verify ipv4 network masks
+
+ -- Proxmox Support Team <support@proxmox.com>  Fri, 22 Feb 2013 09:13:35 +0100
+
 libpve-common-perl (1.0-46) unstable; urgency=low
 
   * revert vlan changes