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
This commit is contained in:
parent
f83b7690e5
commit
7a46365296
@ -658,7 +658,11 @@ void PackUnix::unpack(OutputFile *fo)
|
|||||||
fi->readx(&bhdr, szb_info);
|
fi->readx(&bhdr, szb_info);
|
||||||
ph.u_len = sz_unc = get_te32(&bhdr.sz_unc);
|
ph.u_len = sz_unc = get_te32(&bhdr.sz_unc);
|
||||||
ph.c_len = sz_cpr = get_te32(&bhdr.sz_cpr);
|
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
|
if (sz_unc == 0) // uncompressed size 0 -> EOF
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user