...
|
...
|
@@ -666,7 +666,11 @@ static int add_vm_code(unpack_data_t *unpack_data, unsigned int first_byte,
|
666
|
666
|
return FALSE;
|
667
|
667
|
}
|
668
|
668
|
for (i=0 ; i < (size_t) vm_codesize ; i++) {
|
669
|
|
- vm_code[i] = rarvm_getbits(&rarvm_input) >> 8;
|
|
669
|
+ if ((rarvm_input.in_addr + 2) < rarvm_input.buf_size) {
|
|
670
|
+ vm_code[i] = rarvm_getbits(&rarvm_input) >> 8;
|
|
671
|
+ } else {
|
|
672
|
+ vm_code[i] = 0;
|
|
673
|
+ }
|
670
|
674
|
rarvm_addbits(&rarvm_input, 8);
|
671
|
675
|
}
|
672
|
676
|
if(!rarvm_prepare(&unpack_data->rarvm_data, &rarvm_input, &vm_code[0], (int) vm_codesize, &filter->prg)) {
|