aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
Diffstat (limited to 'src/script')
-rw-r--r--src/script/script.cpp3
-rw-r--r--src/script/script.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp
index a71fee19cf..a10b619f7d 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -273,7 +273,8 @@ bool CScript::HasValidOps() const
CScript::const_iterator it = begin();
while (it < end()) {
opcodetype opcode;
- if (!GetOp(it, opcode) || opcode > 0xb9) {
+ std::vector<unsigned char> item;
+ if (!GetOp(it, opcode, item) || opcode > MAX_OPCODE || item.size() > MAX_SCRIPT_ELEMENT_SIZE) {
return false;
}
}
diff --git a/src/script/script.h b/src/script/script.h
index 25b80ef62b..23706b9826 100644
--- a/src/script/script.h
+++ b/src/script/script.h
@@ -190,6 +190,9 @@ enum opcodetype
OP_INVALIDOPCODE = 0xff,
};
+// Maximum value that an opcode can be
+static const unsigned int MAX_OPCODE = OP_NOP10;
+
const char* GetOpName(opcodetype opcode);
class scriptnum_error : public std::runtime_error