diff --git a/NEWS b/NEWS index 6b6a2344..380b3676 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ User visible changes for UPX ================================================================== Changes in 3.01 (XX XXX 2007): + * dos/exe: fixed an incorrect error message caused by a bug in + relocation handling Changes in 3.00 (27 Apr 2007): * watcom/le & tmt/adam: fixed a problem when using certain filters diff --git a/src/p_exe.cpp b/src/p_exe.cpp index d1700882..d2922af1 100644 --- a/src/p_exe.cpp +++ b/src/p_exe.cpp @@ -478,7 +478,7 @@ void PackExe::pack(OutputFile *fo) for (ic = 0; ic < ih.relocs; ic++) { unsigned jc = get_le32(wr+4*ic); - set_le32(wr+4*ic, (jc>>16)*16+(jc&0xffff)); + set_le32(wr+4*ic, ((jc>>16)*16+(jc&0xffff)) & 0xfffff); } qsort(wr,ih.relocs,4,le32_compare); relocsize = optimize_relocs(ibuf, ih_imagesize, wr, ih.relocs, w, &has_9a);