aboutsummaryrefslogtreecommitdiff
path: root/src/util.cpp
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2013-11-02 05:27:42 +1000
committerGavin Andresen <gavinandresen@gmail.com>2013-11-28 11:03:33 +1000
commit56ce843314f542bcfdc10fa8367aeeb08cdb5c4c (patch)
tree97880b88babcd72a3df88cd9b94451e9dd501495 /src/util.cpp
parente564297156b9103c5af85f6b444df0bdc2476397 (diff)
downloadbitcoin-56ce843314f542bcfdc10fa8367aeeb08cdb5c4c.tar.xz
Refactor: pull alert string sanitization into util
Rebased-from: 17faf562629cd27f00fc138e218ebcc1ce071765
Diffstat (limited to 'src/util.cpp')
-rw-r--r--src/util.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp
index ea10273f85..56d558d7af 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -454,6 +454,19 @@ bool ParseMoney(const char* pszIn, int64& nRet)
return true;
}
+// safeChars chosen to allow simple messages/URLs/email addresses, but avoid anything
+// even possibly remotely dangerous like & or >
+static string safeChars("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890 .,;_/:?@");
+string SanitizeString(const string& str)
+{
+ string strResult;
+ for (std::string::size_type i = 0; i < str.size(); i++)
+ {
+ if (safeChars.find(str[i]) != std::string::npos)
+ strResult.push_back(str[i]);
+ }
+ return strResult;
+}
static const signed char phexdigit[256] =
{ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,