From 3c2bfc742e258aacd7bc5e9b71ac71354a4afe37 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 9 Feb 2019 08:02:57 -0800 Subject: [PATCH] g++ -Wsign-compare is not as picky as MSVC warning C4018: '<': signed/unsigned mismatch https://github.com/upx/upx/issues/247 modified: p_lx_elf.cpp --- src/p_lx_elf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index cc1a99dd..c353a265 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -4717,7 +4717,7 @@ PackLinuxElf32::check_pt_dynamic(Elf32_Phdr const *const phdr) unsigned vaddr = get_te32(&phdr->p_vaddr); unsigned filesz = get_te32(&phdr->p_filesz), memsz = get_te32(&phdr->p_memsz); unsigned align = get_te32(&phdr->p_align); - if (s < t || file_size < (u32_t)s + if (s < t || (u32_t)file_size < s || (3 & t) || (7 & (filesz | memsz)) // .balign 4; 8==sizeof(Elf32_Dyn) || (-1+ align) & (t ^ vaddr) || filesz < sizeof(Elf32_Dyn)