diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index 4365de5de..78f925f70 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -203,6 +203,21 @@ sub validport return 0; } +sub validproxyport +{ + $_ = $_[0]; + + if (!/^\d+$/) { + return 0; } + if (/^0./) { + return 0; } + if ($_ == 53 || $_ == 222 || $_ == 444 || $_ == 81 ) { + return 0; } + elsif ($_ >= 1 && $_ <= 65535) { + return 1; } + return 0; +} + sub validmac { my $checkmac = $_[0]; diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index e582b4e57..b91ec3a90 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -312,7 +312,7 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'} $errormessage = $Lang::tr{'invalid input'}; goto ERROR; } - if (!(&General::validport($proxysettings{'PROXY_PORT'}))) + if (!(&General::validproxyport($proxysettings{'PROXY_PORT'}))) { $errormessage = $Lang::tr{'advproxy errmsg invalid proxy port'}; goto ERROR;