opcode: do not continue reading after a bad push.

This commit is contained in:
Christopher Jeffrey 2017-01-15 22:16:57 -08:00
parent d89678eaac
commit 8b035fd9a8
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -125,6 +125,7 @@ Opcode.prototype.fromReader = function fromReader(br) {
if (op >= 0x01 && op <= 0x4b) {
if (br.left() < op) {
this.value = -1;
br.seek(br.left());
return this;
}
this.value = op;
@ -141,6 +142,7 @@ Opcode.prototype.fromReader = function fromReader(br) {
size = br.readU8();
if (br.left() < size) {
this.value = -1;
br.seek(br.left());
break;
}
this.value = op;
@ -149,11 +151,13 @@ Opcode.prototype.fromReader = function fromReader(br) {
case opcodes.OP_PUSHDATA2:
if (br.left() < 2) {
this.value = -1;
br.seek(br.left());
break;
}
size = br.readU16();
if (br.left() < size) {
this.value = -1;
br.seek(br.left());
break;
}
this.value = op;
@ -162,11 +166,13 @@ Opcode.prototype.fromReader = function fromReader(br) {
case opcodes.OP_PUSHDATA4:
if (br.left() < 4) {
this.value = -1;
br.seek(br.left());
break;
}
size = br.readU32();
if (br.left() < size) {
this.value = -1;
br.seek(br.left());
break;
}
this.value = op;