Browse Source
limit total length of user agent comments
Reworked-By: Wladimir J. van der Laan <laanwj@gmail.com>
pull/4/head
Pavol Rusnak
9 years ago
committed by
Jack Grigg
No known key found for this signature in database
GPG Key ID: 665DBCD284F7DAFF
5 changed files with
16 additions and
4 deletions
-
src/init.cpp
-
src/main.cpp
-
src/net.cpp
-
src/net.h
-
src/rpcnet.cpp
|
|
@ -1206,6 +1206,13 @@ 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>()); |
|
|
|
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)); |
|
|
|
} |
|
|
|
|
|
|
|
if (mapArgs.count("-onlynet")) { |
|
|
|
std::set<enum Network> nets; |
|
|
|
BOOST_FOREACH(const std::string& snet, mapMultiArgs["-onlynet"]) { |
|
|
|
|
|
@ -4768,7 +4768,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, |
|
|
|
if (!vRecv.empty()) |
|
|
|
vRecv >> addrFrom >> nNonce; |
|
|
|
if (!vRecv.empty()) { |
|
|
|
vRecv >> LIMITED_STRING(pfrom->strSubVer, 256); |
|
|
|
vRecv >> LIMITED_STRING(pfrom->strSubVer, MAX_SUBVERSION_LENGTH); |
|
|
|
pfrom->cleanSubVer = SanitizeString(pfrom->strSubVer); |
|
|
|
} |
|
|
|
if (!vRecv.empty()) |
|
|
|
|
|
@ -73,6 +73,7 @@ static std::vector<ListenSocket> vhListenSocket; |
|
|
|
CAddrMan addrman; |
|
|
|
int nMaxConnections = DEFAULT_MAX_PEER_CONNECTIONS; |
|
|
|
bool fAddressesInitialized = false; |
|
|
|
std::string strSubVersion; |
|
|
|
|
|
|
|
vector<CNode*> vNodes; |
|
|
|
CCriticalSection cs_vNodes; |
|
|
@ -435,7 +436,7 @@ void CNode::PushVersion() |
|
|
|
else |
|
|
|
LogPrint("net", "send version message: version %d, blocks=%d, us=%s, peer=%d\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString(), id); |
|
|
|
PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe, |
|
|
|
nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, mapMultiArgs.count("-uacomment") ? mapMultiArgs["-uacomment"] : std::vector<string>()), nBestHeight, true); |
|
|
|
nLocalHostNonce, strSubVersion, nBestHeight, true); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -49,6 +49,8 @@ static const unsigned int MAX_INV_SZ = 50000; |
|
|
|
static const unsigned int MAX_ADDR_TO_SEND = 1000; |
|
|
|
/** Maximum length of incoming protocol messages (no message over 2 MiB is currently acceptable). */ |
|
|
|
static const unsigned int MAX_PROTOCOL_MESSAGE_LENGTH = 2 * 1024 * 1024; |
|
|
|
/** Maximum length of strSubVer in `version` message */ |
|
|
|
static const unsigned int MAX_SUBVERSION_LENGTH = 256; |
|
|
|
/** -listen default */ |
|
|
|
static const bool DEFAULT_LISTEN = true; |
|
|
|
/** The maximum number of entries in mapAskFor */ |
|
|
@ -156,6 +158,9 @@ extern CCriticalSection cs_vAddedNodes; |
|
|
|
extern NodeId nLastNodeId; |
|
|
|
extern CCriticalSection cs_nLastNodeId; |
|
|
|
|
|
|
|
/** Subversion as sent to the P2P network in `version` messages */ |
|
|
|
extern std::string strSubVersion; |
|
|
|
|
|
|
|
struct LocalServiceInfo { |
|
|
|
int nScore; |
|
|
|
int nPort; |
|
|
|
|
|
@ -469,8 +469,7 @@ UniValue getnetworkinfo(const UniValue& params, bool fHelp) |
|
|
|
|
|
|
|
UniValue obj(UniValue::VOBJ); |
|
|
|
obj.push_back(Pair("version", CLIENT_VERSION)); |
|
|
|
obj.push_back(Pair("subversion", |
|
|
|
FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, mapMultiArgs.count("-uacomment") ? mapMultiArgs["-uacomment"] : std::vector<string>()))); |
|
|
|
obj.push_back(Pair("subversion", strSubVersion)); |
|
|
|
obj.push_back(Pair("protocolversion",PROTOCOL_VERSION)); |
|
|
|
obj.push_back(Pair("localservices", strprintf("%016x", nLocalServices))); |
|
|
|
obj.push_back(Pair("timeoffset", GetTimeOffset())); |
|
|
|