pfranz73 at tiscali.it
2009-Apr-24 20:13 UTC
[syslinux] Bugs in pxelinux.asm - syslinux 3.75
In pxelinux.asm
the xchg instruction in
xchg ax,ax
.
data_on_top:
should be xchg ax,dx, I think
At the end of
pxe_get_cached_info routine,there is
and ax,ax
jnz .err
It is supposed to test for AX status, but
since pxenv does pushad and popad, AX doesn't contain status. In fact
the other routines calling pxenv don't have this bug.
pxe_unload seems
to be never called; if so, also RealBaseMem is unused.
According to the
specification, pxe_unload_stack_pkt.reserved are 10 bytes, not 10 words
pfranz73 at tiscali.it wrote:> In pxelinux.asm > the xchg instruction in > > xchg ax,ax > . > data_on_top: > > should be xchg ax,dx, I think > At the end of > pxe_get_cached_info routine,there is > and ax,ax > > jnz .err > It is supposed to test for AX status, but > since pxenv does pushad and popad, AX doesn't contain status. In fact > the other routines calling pxenv don't have this bug. > pxe_unload seems > to be never called; if so, also RealBaseMem is unused. > According to the > specification, pxe_unload_stack_pkt.reserved are 10 bytes, not 10 words >unload_pxe is called via the UNLOAD_PREP macro as well as from comboot.inc. The other issues are valid, of course. -hpa