From 107a8e170186888fbd786f3be73698a3249ecdbb Mon Sep 17 00:00:00 2001 From: ramonn Date: Fri, 11 Oct 2013 11:16:38 +0000 Subject: [PATCH] 2013-10-11 Ramon Novoa * src/expand_command.cc: Remove more problematic characters from the parameters as suggested by Robert van Hamburg (xistence). git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@8890 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- extras/anytermd/ChangeLog | 6 ++++++ extras/anytermd/src/expand_command.cc | 21 +++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/extras/anytermd/ChangeLog b/extras/anytermd/ChangeLog index a7080b99ce..d5aae90075 100644 --- a/extras/anytermd/ChangeLog +++ b/extras/anytermd/ChangeLog @@ -1,3 +1,9 @@ +2013-10-11 Ramon Novoa + + * src/expand_command.cc: Remove more problematic characters + from the parameters as suggested by Robert van Hamburg + (xistence). + 2013-10-10 Ramon Novoa * src/expand_command.cc: Improved injection detection. Thanks to diff --git a/extras/anytermd/src/expand_command.cc b/extras/anytermd/src/expand_command.cc index 1edb4b6dc9..fb8d76047f 100644 --- a/extras/anytermd/src/expand_command.cc +++ b/extras/anytermd/src/expand_command.cc @@ -24,15 +24,24 @@ using namespace std; string safe_param (string param) { + string safe_string = ""; - // Remove leading backticks and blanks - while (!param.empty() && (param.at(0) == '`' || - param.at(0) == '\t'|| - param.at(0) == ' ')) { - param.erase(0); + // Remove problematic characters + for (unsigned int i = 0; i < param.size(); i++){ + if (param[i] == '<' || + param[i] == '>' || + param[i] == '|' || + param[i] == '`' || + param[i] == '$' || + param[i] == ';' || + param[i] == '&') { + continue; + } + + safe_string += param[i]; } - return param; + return safe_string; } // Expand command string: