From aeb784e398b2608ce0028de9a6514f508ad69d19 Mon Sep 17 00:00:00 2001 From: Jeremiah Buddenhagen Date: Fri, 23 Feb 2018 15:28:37 -0800 Subject: [PATCH] Transaction floData length limits --- src/validation.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/validation.cpp b/src/validation.cpp index f989a6afe..0a3bc343d 100755 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -461,6 +461,16 @@ static bool AcceptToMemoryPoolWorker(const CChainParams& chainparams, CTxMemPool return state.DoS(0, false, REJECT_NONSTANDARD, "no-witness-yet", true); } + if (tx.nVersion >= 2) { + int maxCommentLen = 528; + if (witnessEnabled) { + maxCommentLen = 1040; + } + if (tx.strFloData.length() > maxCommentLen) { + return state.DoS(0, false, REJECT_INVALID, "flo-data-too-large"); + } + } + // Rather not work on nonstandard transactions (unless -testnet/-regtest) std::string reason; if (fRequireStandard && !IsStandardTx(tx, reason, witnessEnabled))