diff options
| author | Wladimir J. van der Laan <[email protected]> | 2015-09-22 11:13:39 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2015-09-22 11:36:50 +0200 |
| commit | a3babc826dff0c4bc027d7d62e79500fb9a5a69c (patch) | |
| tree | ca3a10fdc08830cb3ee974222279201b065860f8 /src/init.cpp | |
| parent | Merge pull request #6694 (diff) | |
| parent | [uacomment] Sanitize per BIP-0014 (diff) | |
| download | discoin-a3babc826dff0c4bc027d7d62e79500fb9a5a69c.tar.xz discoin-a3babc826dff0c4bc027d7d62e79500fb9a5a69c.zip | |
Merge pull request #6647
1c1b1b3 [uacomment] Sanitize per BIP-0014 (MarcoFalke)
Diffstat (limited to 'src/init.cpp')
| -rw-r--r-- | src/init.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/init.cpp b/src/init.cpp index 98834ef01..7c3c18acd 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1044,8 +1044,15 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) RegisterNodeSignals(GetNodeSignals()); - // format user agent, check total size - strSubVersion = FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, mapMultiArgs.count("-uacomment") ? mapMultiArgs["-uacomment"] : std::vector<string>()); + // sanitize comments per BIP-0014, format user agent and check total size + std::vector<string> uacomments; + BOOST_FOREACH(string cmt, mapMultiArgs["-uacomment"]) + { + if (cmt != SanitizeString(cmt, SAFE_CHARS_UA_COMMENT)) + return InitError(strprintf("User Agent comment (%s) contains unsafe characters.", cmt)); + uacomments.push_back(SanitizeString(cmt, SAFE_CHARS_UA_COMMENT)); + } + strSubVersion = FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, uacomments); if (strSubVersion.size() > MAX_SUBVERSION_LENGTH) { return InitError(strprintf("Total length of network version string %i exceeds maximum of %i characters. Reduce the number and/or size of uacomments.", strSubVersion.size(), MAX_SUBVERSION_LENGTH)); |