diff --git a/lib/script/opcode.js b/lib/script/opcode.js index 2b71a19d..e732dce1 100644 --- a/lib/script/opcode.js +++ b/lib/script/opcode.js @@ -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;