From 88a31dff93403d8f45b3a3ea91a1168fee0debcc Mon Sep 17 00:00:00 2001 From: Mark Friedenbach Date: Fri, 10 Mar 2017 04:16:34 -0800 Subject: [PATCH] CT/CA: Enforce validity of confidential commitments via CConfidentialCommitment::IsValid() --- src/validation.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/validation.cpp b/src/validation.cpp index 2c000e9b55..74c6a1c0f3 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -722,9 +722,7 @@ bool VerifyAmounts(const CCoinsViewCache& cache, const CTransaction& tx, std::ve { const CConfidentialValue& val = tx.vout[i].nValue; const CConfidentialAsset& asset = tx.vout[i].nAsset; - assert(val.vchCommitment.size() == CConfidentialValue::nCommittedSize || - val.vchCommitment.size() == CConfidentialValue::nExplicitSize); - if (!tx.vout[i].nNonce.IsValid()) + if (!asset.IsValid() || !val.IsValid() || !tx.vout[i].nNonce.IsValid()) return false; if (tx.vout[i].vchRangeproof.size() > 5000) return false;