BUG11466: Fix network_equal function

Message ID 1510060647-12424-1-git-send-email-alexander.marx@ipfire.org
State Dropped
Commit 1047805dba564994a96da0adbfb6559a8609ec11
Headers show
Series BUG11466: Fix network_equal function | expand

Commit Message

Alexander Marx Nov. 8, 2017, 12:17 a.m. UTC
The network_equal function only tested the subnet addresses of two given networks which lead to
errormessages saying "This is the green network"
The fix tests netwok and subnet IP's to fix this
---
 config/cfgroot/network-functions.pl | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Patch

diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl
index 93b8190..25f9af1 100644
--- a/config/cfgroot/network-functions.pl
+++ b/config/cfgroot/network-functions.pl
@@ -108,10 +108,10 @@  sub network_equal {
 	my $network1 = shift;
 	my $network2 = shift;
 
-	my $bin1 = &network2bin($network1);
-	my $bin2 = &network2bin($network2);
+	my @bin1 = &network2bin($network1);
+	my @bin2 = &network2bin($network2);
 
-	if ($bin1 eq $bin2) {
+	if ($bin1[0] eq $bin2[0] && $bin1[1] eq $bin2[1]) {
 		return 1;
 	}
 
@@ -457,7 +457,7 @@  sub testsuite() {
 	assert(!$result);
 
 	$result = &network_equal("192.168.0.1/24", "192.168.0.XXX/24");
-	assert($result);
+	assert(!$result);
 
 	$result = &ip_address_in_network("10.0.1.4", "10.0.0.0/8");
 	assert($result);