From 715aa887b6c8c8124abff0b7a47cfa53dfc6bc91 Mon Sep 17 00:00:00 2001 From: Leo-Andres Hofmann Date: Sun, 21 Mar 2021 22:23:03 +0100 Subject: [PATCH] zoneconf.cgi: Fix VLAN tag range check Use the correct VLAN tag range 1-4094 and add an error message to the range check. The missing error message was discovered by Jonatan. Signed-off-by: Leo-Andres Hofmann Signed-off-by: Michael Tremer --- doc/language_missings | 7 +++++++ html/cgi-bin/zoneconf.cgi | 11 +++++------ langs/de/cgi-bin/de.pl | 1 + langs/en/cgi-bin/en.pl | 1 + 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/doc/language_missings b/doc/language_missings index 3cd277726..4b5a90c67 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -912,6 +912,7 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error ############################################################################ # Checking cgi-bin translations for language: fr # @@ -933,6 +934,7 @@ < zoneconf stp priority < zoneconf val stp priority range error < zoneconf val stp zone mode error +< zoneconf val vlan tag range error ############################################################################ # Checking cgi-bin translations for language: it # ############################################################################ @@ -1322,6 +1324,7 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error ############################################################################ # Checking cgi-bin translations for language: nl # @@ -1766,6 +1769,7 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error ############################################################################ # Checking cgi-bin translations for language: pl # @@ -2652,6 +2656,7 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error ############################################################################ # Checking cgi-bin translations for language: ru # @@ -3545,6 +3550,7 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error ############################################################################ # Checking cgi-bin translations for language: tr # @@ -3741,4 +3747,5 @@ < zoneconf val stp zone mode error < zoneconf val vlan amount assignment error < zoneconf val vlan tag assignment error +< zoneconf val vlan tag range error < zoneconf val zoneslave amount error diff --git a/html/cgi-bin/zoneconf.cgi b/html/cgi-bin/zoneconf.cgi index b90ea8a41..c0d44764f 100644 --- a/html/cgi-bin/zoneconf.cgi +++ b/html/cgi-bin/zoneconf.cgi @@ -279,11 +279,10 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{"save"}) { } $VALIDATE_nic_check{"VLAN $mac $vlan_tag"} = 1; - - if (! looks_like_number($vlan_tag)) { - last; - } - if ($vlan_tag < 1 || $vlan_tag > 4095) { + + # check VLAN tag range: 1..4094 (0, 4095 are reserved) + unless (looks_like_number($vlan_tag) && ($vlan_tag >= 1) && ($vlan_tag <= 4094)) { + $VALIDATE_error = $Lang::tr{"zoneconf val vlan tag range error"}; last; } @@ -486,7 +485,7 @@ END - + END ; diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index 6a8133807..191c778d2 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -2988,6 +2988,7 @@ 'zoneconf val stp zone mode error' => 'STP kann nur aktiviert werden, wenn sich die Zone im Brückenmodus befindet', 'zoneconf val vlan amount assignment error' => 'Pro Zone kann nur ein VLAN verwendet werden.', 'zoneconf val vlan tag assignment error' => 'Pro Netzwerkkarte kann derselbe VLAN-Tag nur einmal verwendet werden.', +'zoneconf val vlan tag range error' => 'VLAN-Tag muss im Bereich 1-4094 liegen.', 'zoneconf val zoneslave amount error' => 'Wenn eine Zone nicht im Brückenmodus ist, kann ihr nur eine Netzwerkkarte zugewiesen werden.', ); diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 8f7e0c2cf..1d059aac8 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -3037,6 +3037,7 @@ 'zoneconf val stp zone mode error' => 'STP can only be enabled if the zone is in bridge mode', 'zoneconf val vlan amount assignment error' => 'A zone cannot have more than one VLAN assigned.', 'zoneconf val vlan tag assignment error' => 'You cannot use the same VLAN tag more than once per NIC.', +'zoneconf val vlan tag range error' => 'VLAN tag must be in the range of 1-4094.', 'zoneconf val zoneslave amount error' => 'A zone that is not in bridge mode can\'t have more than one NIC assigned', ); -- 2.39.2