opcode: do not continue reading after a bad push.
This commit is contained in:
parent
d89678eaac
commit
8b035fd9a8
@ -125,6 +125,7 @@ Opcode.prototype.fromReader = function fromReader(br) {
|
|||||||
if (op >= 0x01 && op <= 0x4b) {
|
if (op >= 0x01 && op <= 0x4b) {
|
||||||
if (br.left() < op) {
|
if (br.left() < op) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
this.value = op;
|
this.value = op;
|
||||||
@ -141,6 +142,7 @@ Opcode.prototype.fromReader = function fromReader(br) {
|
|||||||
size = br.readU8();
|
size = br.readU8();
|
||||||
if (br.left() < size) {
|
if (br.left() < size) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.value = op;
|
this.value = op;
|
||||||
@ -149,11 +151,13 @@ Opcode.prototype.fromReader = function fromReader(br) {
|
|||||||
case opcodes.OP_PUSHDATA2:
|
case opcodes.OP_PUSHDATA2:
|
||||||
if (br.left() < 2) {
|
if (br.left() < 2) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
size = br.readU16();
|
size = br.readU16();
|
||||||
if (br.left() < size) {
|
if (br.left() < size) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.value = op;
|
this.value = op;
|
||||||
@ -162,11 +166,13 @@ Opcode.prototype.fromReader = function fromReader(br) {
|
|||||||
case opcodes.OP_PUSHDATA4:
|
case opcodes.OP_PUSHDATA4:
|
||||||
if (br.left() < 4) {
|
if (br.left() < 4) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
size = br.readU32();
|
size = br.readU32();
|
||||||
if (br.left() < size) {
|
if (br.left() < size) {
|
||||||
this.value = -1;
|
this.value = -1;
|
||||||
|
br.seek(br.left());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.value = op;
|
this.value = op;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user