From 5a4c7d3fc7a6a6bc075ab88b1f49e330894e70ce Mon Sep 17 00:00:00 2001 From: alexhz Date: Thu, 20 Jun 2013 17:00:45 +0000 Subject: [PATCH] Fix memory exhaustion --- src/main.cpp | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 2bedf29..6e897fd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3432,6 +3432,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) CInv inv(MSG_TX, tx.GetHash()); pfrom->AddInventoryKnown(inv); + // Truncate messages to the size of the tx in them + unsigned int nSize = ::GetSerializeSize(tx,SER_NETWORK, PROTOCOL_VERSION); + if (nSize < vMsg.size()){ + vMsg.resize(nSize); + } + bool fMissingInputs = false; if (tx.AcceptToMemoryPool(txdb, true, &fMissingInputs)) { -- 1.7.1