From 2cb7b56a41e0bc21be4296e150065900fc8101d1 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Sat, 9 May 2015 07:18:54 -0700 Subject: [PATCH] Check ph.c_len; CERT-FI 829767 id:000023,sig:06,src:000000,op:flip2,pos:10440 --- 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 7052a7c1..c0c79a60 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -3022,7 +3022,7 @@ void PackLinuxElf64::unpack(OutputFile *fo) fi->readx(&bhdr, szb_info); ph.u_len = get_te32(&bhdr.sz_unc); ph.c_len = get_te32(&bhdr.sz_cpr); - if (ph.c_len > fi->st_size()) + if (ph.c_len > fi->st_size() || ph.c_len == 0 || ph.u_len == 0) throwCantUnpack("file header corrupted"); ph.filter_cto = bhdr.b_cto8;