[pve-devel] [PATCH v2 common 02/14] network: is_ip_in_cidr: avoid warning when versions don't match

Fabian Ebner f.ebner at proxmox.com
Mon May 10 14:18:14 CEST 2021


is_ip_in_cidr('fd80:1::10', '127.0.0.1/24') would result in
    Use of uninitialized value in numeric eq (==)
as overlaps() returns undef in such a case.

Note that there are (albeit few) existing callers that don't specify $version.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

New in v2.

 src/PVE/Network.pm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/PVE/Network.pm b/src/PVE/Network.pm
index 366d242..2d63a45 100644
--- a/src/PVE/Network.pm
+++ b/src/PVE/Network.pm
@@ -594,6 +594,8 @@ sub is_ip_in_cidr {
 
     my $overlap = $cidr_obj->overlaps($ip_obj);
 
+    return if !defined($overlap);
+
     return $overlap == $Net::IP::IP_B_IN_A_OVERLAP || $overlap == $Net::IP::IP_IDENTICAL;
 }
 
-- 
2.20.1





More information about the pve-devel mailing list