From d507b58a911e28243523a6408c0b3600c9f1ead1 Mon Sep 17 00:00:00 2001 From: Micah Snyder Date: Sun, 18 Feb 2018 08:51:15 -0500 Subject: [PATCH] applying patch to correct invalid read in unrar add_vm_code. --- libclamunrar/unrar.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libclamunrar/unrar.c b/libclamunrar/unrar.c index 9a3feaca4..edde97aa3 100644 --- a/libclamunrar/unrar.c +++ b/libclamunrar/unrar.c @@ -666,7 +666,11 @@ static int add_vm_code(unpack_data_t *unpack_data, unsigned int first_byte, return FALSE; } for (i=0 ; i < (size_t) vm_codesize ; i++) { - vm_code[i] = rarvm_getbits(&rarvm_input) >> 8; + if ((rarvm_input.in_addr + 2) < rarvm_input.buf_size) { + vm_code[i] = rarvm_getbits(&rarvm_input) >> 8; + } else { + vm_code[i] = 0; + } rarvm_addbits(&rarvm_input, 8); } if(!rarvm_prepare(&unpack_data->rarvm_data, &rarvm_input, &vm_code[0], (int) vm_codesize, &filter->prg)) {