From 7a46365296a20ffc924594c82fb60e2a80e82cbe Mon Sep 17 00:00:00 2001 From: John Reiser Date: Tue, 25 Nov 2025 04:29:52 -0800 Subject: [PATCH] Fix unpack of PackLinuxI386 for upx version 11 Old b_info without .b_method https://github.com/upx/upx/issues/942 modified: p_unix.cpp --- src/p_unix.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/p_unix.cpp b/src/p_unix.cpp index 16f36988..8af0530c 100644 --- a/src/p_unix.cpp +++ b/src/p_unix.cpp @@ -658,7 +658,11 @@ void PackUnix::unpack(OutputFile *fo) fi->readx(&bhdr, szb_info); ph.u_len = sz_unc = get_te32(&bhdr.sz_unc); ph.c_len = sz_cpr = get_te32(&bhdr.sz_cpr); - ph.set_method(bhdr.b_method); + if (szb_info < sizeof(b_info)) { // some upx version 11 + bhdr.b_method = ph.method; + bhdr.b_ftid = ph.filter; + bhdr.b_cto8 = ph.filter_cto; + } if (sz_unc == 0) // uncompressed size 0 -> EOF {