dos/exe: fixed a bug in relocation handling

This commit is contained in:
László Molnár
2007-03-01 16:57:12 +01:00
parent ffe4a4b047
commit b4c4b1fb70
2 changed files with 2 additions and 1 deletions
+1
View File
@@ -10,6 +10,7 @@ Changes in 2.93 beta (XX XXX 2007):
because runtime decompression is about 30 times slower than NRV - because runtime decompression is about 30 times slower than NRV -
which is really noticable on old machines. which is really noticable on old machines.
* win32/pe & arm/pe: better icon compression handling * win32/pe & arm/pe: better icon compression handling
* dos/exe: fixed a rarely occuring bug in relocation handling
Changes in 2.92 beta (23 Jan 2007): Changes in 2.92 beta (23 Jan 2007):
* new option '--ultra-brute' which tries even more variants * new option '--ultra-brute' which tries even more variants
+1 -1
View File
@@ -388,7 +388,7 @@ unsigned optimize_relocs(upx_byte *b, const unsigned size,
break; break;
} }
unsigned offs = addr - es*16; unsigned offs = addr - es*16;
if (offs >= 3 && b[es*16 + offs-3] == 0x9a) if (offs >= 3 && b[es*16 + offs-3] == 0x9a && offs > di + 3)
{ {
for (t = di; t < offs-3; t++) for (t = di; t < offs-3; t++)
if (b[es*16+t] == 0x9a && get_le16(b+es*16+t+3) <= seg_high) if (b[es*16+t] == 0x9a && get_le16(b+es*16+t+3) <= seg_high)