mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-30 18:51:15 +02:00
Sanity check transaction scripts in DecodeHexTx
Make sure that the scripts of decoded transactions are valid scripts.
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user