swt2c / rpms / syslinux

Forked from rpms/syslinux 5 years ago
Clone
Florian La Roche 3731a7d
From: H. Peter Anvin <hpa@zytor.com>
Florian La Roche 3731a7d
Date: Mon, 19 Feb 2007 23:54:58 +0000 (-0800)
Florian La Roche 3731a7d
Subject: Comboot function READ DISK corrupts its arguments; fix.
Florian La Roche 3731a7d
X-Git-Tag: syslinux-3.40-pre10^0~13^2
Florian La Roche 3731a7d
X-Git-Url: http://www.jur-linux.org/git/?p=syslinux.git;a=commitdiff_plain;h=c7c51cdcd0a094c2588f8a816542bc57bb4efb34
Florian La Roche 3731a7d
Florian La Roche 3731a7d
Comboot function READ DISK corrupts its arguments; fix.
Florian La Roche 3731a7d
---
Florian La Roche 3731a7d
Florian La Roche 3731a7d
diff --git a/comboot.doc b/comboot.doc
Florian La Roche 3731a7d
index 8aaa0e7..0d70b48 100644
Florian La Roche 3731a7d
--- a/comboot.doc
Florian La Roche 3731a7d
+++ b/comboot.doc
Florian La Roche 3731a7d
@@ -723,7 +723,7 @@ AX=0018h [3.30]	Query custom font
Florian La Roche 3731a7d
 	been loaded, AL contains zero.
Florian La Roche 3731a7d
 
Florian La Roche 3731a7d
 
Florian La Roche 3731a7d
-AX=0019h [3.35] Read disk [SYSLINUX, ISOLINUX, EXTLINUX]
Florian La Roche 3731a7d
+AX=0019h [3.xx] Read disk [SYSLINUX, ISOLINUX, EXTLINUX]
Florian La Roche 3731a7d
 	Input:	AX	0019h
Florian La Roche 3731a7d
 		EDX	Sector number
Florian La Roche 3731a7d
 		ESI	Reserved - MUST BE ZERO
Florian La Roche 3731a7d
diff --git a/comboot.inc b/comboot.inc
Florian La Roche 3731a7d
index 0f544c2..5df900f 100644
Florian La Roche 3731a7d
--- a/comboot.inc
Florian La Roche 3731a7d
+++ b/comboot.inc
Florian La Roche 3731a7d
@@ -780,9 +780,9 @@ comapi_readdisk:
Florian La Roche 3731a7d
 		or esi,P_EDI		; are reserved for future expansion
Florian La Roche 3731a7d
 		jnz .err
Florian La Roche 3731a7d
 		mov eax,P_EDX
Florian La Roche 3731a7d
-		mov bp,P_CX
Florian La Roche 3731a7d
 		mov es,P_ES
Florian La Roche 3731a7d
 		mov bx,P_BX
Florian La Roche 3731a7d
+		mov bp,P_CX		; WE CANNOT use P_* after touching bp!
Florian La Roche 3731a7d
 		call getlinsec
Florian La Roche 3731a7d
 		clc
Florian La Roche 3731a7d
 		ret