From 8e852575f30e7632129a2d4285c1815ba8b4927f Mon Sep 17 00:00:00 2001 From: CryptoManiac Date: Tue, 23 Feb 2016 23:07:39 +0300 Subject: [PATCH] Move transaction timestamp checking to CTxMemPool::accept() --- src/main.cpp | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index f3f1d55..54b852d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -510,10 +510,6 @@ bool CTransaction::CheckTransaction() const return DoS(10, error("CTransaction::CheckTransaction() : vin empty")); if (vout.empty()) return DoS(10, error("CTransaction::CheckTransaction() : vout empty")); - // Time (prevent mempool memory exhaustion attack) - // Comes into force since 20 December 2015. - if (nTime > 1450569600 && nTime > FutureDrift(GetAdjustedTime())) - return DoS(10, error("CTransaction::CheckTransaction() : timestamp is too far into the future")); // Size limits if (::GetSerializeSize(*this, SER_NETWORK, PROTOCOL_VERSION) > MAX_BLOCK_SIZE) return DoS(100, error("CTransaction::CheckTransaction() : size limits failed")); @@ -622,6 +618,10 @@ bool CTxMemPool::accept(CTxDB& txdb, CTransaction &tx, bool fCheckInputs, if (pfMissingInputs) *pfMissingInputs = false; + // Time (prevent mempool memory exhaustion attack) + if (tx.nTime > FutureDrift(GetAdjustedTime())) + return tx.DoS(10, error("CTxMemPool::accept() : transaction timestamp is too far in the future")); + if (!tx.CheckTransaction()) return error("CTxMemPool::accept() : CheckTransaction failed"); -- 1.7.1