From 233276a63f266a6a03389b9b4bd9bb7c1c85fd97 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 2 Aug 2013 11:06:40 +0200 Subject: [PATCH] tor.cgi: Catch invalid characters in relay name. --- doc/language_issues.de | 1 + doc/language_issues.en | 1 + doc/language_missings | 4 ++++ html/cgi-bin/tor.cgi | 15 +++++++++------ langs/de/cgi-bin/de.pl | 1 + langs/en/cgi-bin/en.pl | 1 + 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/doc/language_issues.de b/doc/language_issues.de index 8f23c51be3..6f76ef6467 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -486,6 +486,7 @@ WARNING: translation string unused: too long 80 char max WARNING: translation string unused: tor accounting period daily WARNING: translation string unused: tor accounting period monthly WARNING: translation string unused: tor accounting period weekly +WARNING: translation string unused: tor errmsg invalid relay name WARNING: translation string unused: tor exit country WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time diff --git a/doc/language_issues.en b/doc/language_issues.en index 9350208169..611041a777 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -519,6 +519,7 @@ WARNING: translation string unused: tor accounting period monthly WARNING: translation string unused: tor accounting period weekly WARNING: translation string unused: tor bridge enabled WARNING: translation string unused: tor errmsg invalid node id +WARNING: translation string unused: tor errmsg invalid relay name WARNING: translation string unused: tor exit country WARNING: translation string unused: traffic back WARNING: translation string unused: traffic calc time diff --git a/doc/language_missings b/doc/language_missings index ec781ad725..857b73b6b7 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -350,6 +350,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -754,6 +755,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -1110,6 +1112,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes @@ -1471,6 +1474,7 @@ < tor do not advertise relay < tor enabled < tor errmsg invalid ip or mask +< tor errmsg invalid relay name < tor exit country < tor exit country any < tor exit nodes diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi index 0c5477fd60..14eac4e728 100644 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -74,6 +74,8 @@ if (&Header::blue_used()) { $settings{'TOR_RELAY_ENABLED'} = 'off'; $settings{'TOR_RELAY_MODE'} = 'exit'; $settings{'TOR_RELAY_PORT'} = 9001; +$settings{'TOR_RELAY_NICKNAME'} = ''; +$settings{'TOR_RELAY_CONTACT_INFO'} = ''; $settings{'TOR_RELAY_NOADVERTISE'} = 'off'; $settings{'TOR_RELAY_BANDWIDTH_RATE'} = 0; $settings{'TOR_RELAY_BANDWIDTH_BURST'} = 0; @@ -95,6 +97,10 @@ our $torctrl = &TorConnect(); # Toggle enable/disable field. if ($settings{'ACTION'} eq $Lang::tr{'save'}) { + if ($settings{'TOR_RELAY_NICKNAME'} !~ /^[a-zA-Z0-9]+$/) { + $errormessage = "$Lang::tr{'tor errmsg invalid relay name'}: $settings{'TOR_RELAY_NICKNAME'}"; + } + my @temp = split(/[\n,]/,$settings{'TOR_ALLOWED_SUBNETS'}); $settings{'TOR_ALLOWED_SUBNETS'} = ""; foreach (@temp) { @@ -131,14 +137,11 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) { # Update configuration files. &BuildConfiguration(); } - - # Reset ACTION. - $settings{'ACTION'} = ''; +} else { + # Load settings from file. + &General::readhash("${General::swroot}/tor/settings", \%settings); } -# Load settings from file. -&General::readhash("${General::swroot}/tor/settings", \%settings); - &showMainBox(); # Close Tor control connection. diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index a286d74ceb..314441711d 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -1993,6 +1993,7 @@ 'tor do not advertise relay' => 'Relay nicht announcieren', 'tor enabled' => 'Tor einschalten', 'tor errmsg invalid ip or mask' => 'Ungültiges IP-Subnetz', +'tor errmsg invalid relay name' => 'Ungültiger Relay-Nickname.', 'tor exit country' => 'Exit-Land', 'tor exit country any' => 'Beliebig', 'tor exit nodes' => 'Exit-Nodes', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 39222b6024..56119e96ae 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -2021,6 +2021,7 @@ 'tor enabled' => 'Enable Tor', 'tor errmsg invalid ip or mask' => 'Invalid IP subnet', 'tor errmsg invalid node id' => 'Invalid node ID', +'tor errmsg invalid relay name' => 'Invalid relay nickname', 'tor exit country' => 'Exit country', 'tor exit country any' => 'Any country', 'tor exit nodes' => 'Exit Nodes', -- 2.39.5