[syslinux] syslinux 3.11/3.20-pre initrd loading bug

Steffen Winterfeldt wfeldt at suse.de
Mon Jun 19 07:47:48 PDT 2006

If you load more than one initrd syslinux doesn't clear the memory between
them. Or rather, the code for it does not work. The patch below fixes it.


--- loadhigh.inc
+++ loadhigh.inc
@@ -65,7 +65,10 @@
 		push edi			; <C> Target buffer
 		mov cx,ax
 		xor bx,bx			; ES:0
+		push dx
 		call getfssec			; Load the data into xfer_buf_seg
+						; getfssec destroys dx!
+		pop dx
 		pop edi				; <C> Target buffer
 		pop ecx				; <B> Byte count this round
 		push ecx			; <B> Byte count this round

More information about the Syslinux mailing list