From 4f0bfeab4c4b51b40822bbe92589123d2dbe0915 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 16 Nov 2013 14:28:59 -0800 Subject: [PATCH] Round down unfilter length to a multiple of 4. https://sourceforge.net/p/upx/bugs/223 --- src/stub/src/thumb-linux.shlib-init.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stub/src/thumb-linux.shlib-init.S b/src/stub/src/thumb-linux.shlib-init.S index 8e7124f2..f8f4e9e2 100644 --- a/src/stub/src/thumb-linux.shlib-init.S +++ b/src/stub/src/thumb-linux.shlib-init.S @@ -176,8 +176,8 @@ f_unfilter: // (char *ptr, uint len, uint cto, uint fid) #ifndef FILTER_ID /*{*/ #define FILTER_ID 0x50 /* little-endian */ #endif /*}*/ - lsl fid,fid,#24; tst len,len; beq unf_done - lsr fid,fid,#24; tst ptr,ptr; beq unf_done + lsl fid,fid,#24; lsr len,len,#2 + lsr fid,fid,#24; lsl len,len,#2 cmp fid,#FILTER_ID; bne unf_done // last use of fid b tst_unf top_unf: