BUG11466: Fix network_equal function

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

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);