aboutsummaryrefslogtreecommitdiff
path: root/src/script/script.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <[email protected]>2017-06-08 12:48:46 +0200
committerWladimir J. van der Laan <[email protected]>2017-06-08 13:36:48 +0200
commit9c248e39f2807a7f89e555e99cc55cb2de1ad335 (patch)
tree23d98e7fdeec7350b6ff274775cce9ee91d5e13c /src/script/script.cpp
parentMerge #10548: Use std::unordered_{map,set} (C++11) instead of boost::unordere... (diff)
parentSanity check transaction scripts in DecodeHexTx (diff)
downloaddiscoin-9c248e39f2807a7f89e555e99cc55cb2de1ad335.tar.xz
discoin-9c248e39f2807a7f89e555e99cc55cb2de1ad335.zip
Merge #10481: Decodehextx scripts sanity check
ac4e438 Sanity check transaction scripts in DecodeHexTx (Andrew Chow) 5b75c47 Add a valid opcode sanity check to CScript (Andrew Chow) Tree-SHA512: a516e95c274c9d131123150c798cae8bed75925e8a4d59469967dd7f1d49f7f8161e26afb61024b821bd8dcdffdfd0d19b8dcad20b39b1106820326d8d56904d
Diffstat (limited to 'src/script/script.cpp')
-rw-r--r--src/script/script.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp
index 70eb8a139..a10b619f7 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -267,3 +267,16 @@ std::string CScriptWitness::ToString() const
}
return ret + ")";
}
+
+bool CScript::HasValidOps() const
+{
+ CScript::const_iterator it = begin();
+ while (it < end()) {
+ opcodetype opcode;
+ std::vector<unsigned char> item;
+ if (!GetOp(it, opcode, item) || opcode > MAX_OPCODE || item.size() > MAX_SCRIPT_ELEMENT_SIZE) {
+ return false;
+ }
+ }
+ return true;
+}