From: Luke Dashjr Date: Fri, 4 May 2012 18:55:15 +0000 (+0000) Subject: Merge branch '0.4.x' into 0.5.x X-Git-Tag: v0.4.0-unstable~129^2~1^2^2~14^2~3 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=b2e5f797b5670c4dc7d0dfd696d21977575fe9ed;hp=6a89317f621692e7d5c0c67b3a1440bf1b52b328 Merge branch '0.4.x' into 0.5.x --- diff --git a/src/main.cpp b/src/main.cpp index 5f98d49..ff4e2f0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1502,6 +1502,16 @@ bool CBlock::CheckBlock() const if (uniqueTx.size() != vtx.size()) return DoS(100, error("CheckBlock() : duplicate transaction")); + // Check for duplicate txids. This is caught by ConnectInputs(), + // but catching it earlier avoids a potential DoS attack: + set uniqueTx; + BOOST_FOREACH(const CTransaction& tx, vtx) + { + uniqueTx.insert(tx.GetHash()); + } + if (uniqueTx.size() != vtx.size()) + return error("CheckBlock() : duplicate transaction"); + // Check that it's not full of nonstandard transactions if (GetSigOpCount() > MAX_BLOCK_SIGOPS) return DoS(100, error("CheckBlock() : out-of-bounds SigOpCount")); diff --git a/src/serialize.h b/src/serialize.h index 346594c..6bdf378 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -1245,8 +1245,6 @@ public: int nType; int nVersion; - typedef FILE element_type; - CAutoFile(FILE* filenew=NULL, int nTypeIn=SER_DISK, int nVersionIn=VERSION) { file = filenew; diff --git a/src/util.cpp b/src/util.cpp index 211d1a0..66161c7 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -236,7 +236,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...) *pend = '\0'; char* p1 = pszBuffer; char* p2; - while (p2 = strchr(p1, '\n')) + while ((p2 = strchr(p1, '\n'))) { p2++; char c = *p2; diff --git a/src/wallet.h b/src/wallet.h index 86c8bc8..90ee518 100644 --- a/src/wallet.h +++ b/src/wallet.h @@ -175,7 +175,6 @@ public: } int LoadWallet(bool& fFirstRunRet); -// bool BackupWallet(const std::string& strDest); bool SetAddressBookName(const CBitcoinAddress& address, const std::string& strName);