[pve-devel] [PATCH pve-firewall] allow non zero ip address host bits

Stefan Hrdlicka s.hrdlicka at proxmox.com
Tue Oct 25 16:31:51 CEST 2022


They can already be set directly via the cluster.fw file. Net::IP is just a
bit more picky with what it allows:
For example:
  error:   192.168.1.155/24
  correct: 192.168.1.0/24

also improves #3554

Signed-off-by: Stefan Hrdlicka <s.hrdlicka at proxmox.com>
---
 src/PVE/Firewall.pm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/PVE/Firewall.pm b/src/PVE/Firewall.pm
index e6d6802..25e2fd0 100644
--- a/src/PVE/Firewall.pm
+++ b/src/PVE/Firewall.pm
@@ -69,6 +69,14 @@ sub pve_verify_ip_or_cidr {
     if ($cidr =~ m!^(?:$IPV6RE|$IPV4RE)(/(\d+))?$!) {
 	return $cidr if Net::IP->new($cidr);
 	return undef if $noerr;
+
+	# Error 171 in Net::IP comes up if the host part of the IP address isn't
+	# zero.
+	# for example:
+	#  error:   192.168.1.155/24
+	#  correct: 192.168.1.0/24
+	return $cidr if Net::IP::Errno() == 171;
+
 	die Net::IP::Error() . "\n";
     }
     return undef if $noerr;
-- 
2.30.2






More information about the pve-devel mailing list