All peg-out related detection pushes should be <= OP_PUSHDATA4

This commit is contained in:
Gregory Sanders 2019-05-07 12:01:17 -04:00
parent bb80fd1602
commit cff50f5c36
2 changed files with 10 additions and 3 deletions

View file

@ -213,17 +213,24 @@ bool CScript::IsPegoutScript(uint256& genesis_hash, CScript& pegout_scriptpubkey
return false;
}
if (!GetOp(pc, opcode, data) || data.size() != 32 ) {
if (!GetOp(pc, opcode, data) || data.size() != 32 || opcode > OP_PUSHDATA4) {
return false;
}
genesis_hash = uint256(data);
// Read in parent chain destination scriptpubkey
if (!GetOp(pc, opcode, data) || data.size() == 0 ) {
if (!GetOp(pc, opcode, data) || opcode > OP_PUSHDATA4 ) {
return false;
}
pegout_scriptpubkey = CScript(data.begin(), data.end());
// All extra opcodes must be pushes
while(GetOp(pc, opcode, data)) {
if (opcode > OP_PUSHDATA4) {
return false;
}
}
return true;
}