mirror of
https://github.com/upx/upx.git
synced 2025-08-11 22:52:30 +08:00
Linux 2.5.53 has some Elf32_auxv_t.a_type >= 32
committer: jreiser <jreiser> 1040352519 +0000
This commit is contained in:
@ -181,11 +181,14 @@ L20: ; move envp
|
|||||||
L30: ; process auxv
|
L30: ; process auxv
|
||||||
lodsd ; a_type
|
lodsd ; a_type
|
||||||
stosd
|
stosd
|
||||||
test eax, eax ; AT_NULL ? [flags: Zero, Sign, Parity; C=0, V=0]
|
cmp al, 32
|
||||||
|
jae L32 ; prevent aliasing of 'btr' when 32<=a_type
|
||||||
btr edx, eax ; no longer need a slot of type eax [Carry only]
|
btr edx, eax ; no longer need a slot of type eax [Carry only]
|
||||||
|
L32:
|
||||||
|
test eax, eax ; AT_NULL ? [flags: Zero, Sign, Parity; C=0, V=0]
|
||||||
lodsd
|
lodsd
|
||||||
stosd
|
stosd
|
||||||
jne L30 ; checks only Zero bit of flags
|
jnz L30 ; checks only Zero bit of flags
|
||||||
|
|
||||||
sub edi, byte 8 ; backup to AT_NULL
|
sub edi, byte 8 ; backup to AT_NULL
|
||||||
add ecx, ecx ; two words per auxv
|
add ecx, ecx ; two words per auxv
|
||||||
|
Reference in New Issue
Block a user