summaryrefslogtreecommitdiff
path: root/pxelinux.asm
diff options
context:
space:
mode:
authorhpa <hpa>2002-10-22 18:28:26 +0000
committerhpa <hpa>2002-10-22 18:28:26 +0000
commit6f5159e474dd731591e536f15776c94ce4754f73 (patch)
treeb20b7e1012d19b843a37507fccaa57dabef9f60f /pxelinux.asm
parent07786ed98ed2dce5a8259665bce598fa3c84c0ad (diff)
downloadsyslinux-6f5159e474dd731591e536f15776c94ce4754f73.tar.gz
Fix PXELINUX memory overwrite bug.syslinux-2.00-pre9
Diffstat (limited to 'pxelinux.asm')
-rw-r--r--pxelinux.asm8
1 files changed, 8 insertions, 0 deletions
diff --git a/pxelinux.asm b/pxelinux.asm
index 53b46b84..e4572b88 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -306,7 +306,11 @@ _start1:
mov al,NULLFILE
mov di,FKeyName
mov cx,10*(1 << FILENAME_MAX_LG2)
+ push es ; Save ES -> PXE structure
+ push ds ; ES <- DS
+ pop es
rep stosb
+ pop es ; Restore ES
;
; Tell the user we got this far
@@ -504,7 +508,11 @@ have_entrypoint:
mov di,Sockets
mov cx,(MAX_SOCKETS*tftp_port_t_size)/4
xor eax,eax
+ push es ; Save ES -> PXE structure
+ push ds ; ES <- DS
+ pop es
rep stosd
+ pop es
;
; Now attempt to get the BOOTP/DHCP packet that brought us life (and an IP