From 61371dd0c0d036b16e95cbc1c3b029aec75e6b38 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 12 Jul 2019 06:24:59 -1100 Subject: [PATCH] Test --- src/cc/CCtx.cpp | 9 +++++++-- src/script/script.cpp | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/cc/CCtx.cpp b/src/cc/CCtx.cpp index 1048f7e35..5799f0b18 100644 --- a/src/cc/CCtx.cpp +++ b/src/cc/CCtx.cpp @@ -99,12 +99,17 @@ std::string FinalizeCCTx(uint64_t CCmask,struct CCcontract_info *cp,CMutableTran { if (i==0 && mtx.vin[i].prevout.n==10e8) continue; - if ( myGetTransaction(mtx.vin[i].prevout.hash,vintx,hashBlock) != 0 ) + if ( myGetTransaction(mtx.vin[i].prevout.hash,vintx,hashBlock) != 0 && mtx.vin[i].prevout.n < vintx.vout.size() ) { if ( vintx.vout[mtx.vin[i].prevout.n].scriptPubKey.IsPayToCryptoCondition() == 0 && ccvins==0) normalvins++; else ccvins++; - } + } + else + { + fprintf(stderr,"vin.%d vout.%d is bigger than vintx.%d\n",i,mtx.vin[i].prevout.n,(int32_t)vintx.vout.size()); + return(""); + } } if (normalvins>1 && ccvins) { diff --git a/src/script/script.cpp b/src/script/script.cpp index 475acdfd5..c821cd3bc 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -385,7 +385,9 @@ bool CScript::IsPayToCryptoCondition(CScript *pCCSubScript, std::vector> vParams; - return IsPayToCryptoCondition(pCCSubScript, vParams); + if ( pCCSubScript != 0 ) + return IsPayToCryptoCondition(pCCSubScript, vParams); + else return(false); } bool CScript::IsPayToCryptoCondition() const