[syslinux:pathbased] memdisk: Correct El Torito termination response

syslinux-bot for Shao Miller shao.miller at yrdsb.edu.on.ca
Sat Jun 19 19:12:02 PDT 2010


Commit-ID:  38792ac66a4d4285a06ba8b6ee5b866792f536f4
Gitweb:     http://syslinux.zytor.com/commit/38792ac66a4d4285a06ba8b6ee5b866792f536f4
Author:     Shao Miller <shao.miller at yrdsb.edu.on.ca>
AuthorDate: Mon, 14 Jun 2010 23:36:34 -0400
Committer:  Shao Miller <shao.miller at yrdsb.edu.on.ca>
CommitDate: Tue, 15 Jun 2010 00:48:50 -0400

memdisk: Correct El Torito termination response

Two changes to the INT 0x13, AH=0x7B El Torito function:

1. Support the DL=0x7F "terminate all" parameter
2. Only respond to DL=0x7F or DL=our particular emulated drive number

This prevents tools like Bart Lagerweij's El Torito tools from
receiving false positives when probing all drive numbers.

Signed-off-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>


---
 memdisk/memdisk.inc |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc
index 90e6ef9..91040ba 100644
--- a/memdisk/memdisk.inc
+++ b/memdisk/memdisk.inc
@@ -616,7 +616,12 @@ ElToritoTerminate:
 		mov ax,[cs:SavedAX]
 		cmp al,1		; We only support query, not terminate
 		jne ElToritoErr		; Fail
-		mov es,P_DS		; Caller's DS:SI pointed to packet
+		cmp dl,7fh		; Terminate all?
+		je .doit
+		cmp dl,[cs:DriveNo]	; Terminate our drive?
+		je .doit
+		jmp ElToritoErr		; Fail
+.doit:		mov es,P_DS		; Caller's DS:SI pointed to packet
 		mov di,P_SI		; We'll use ES:DI
 		mov si,CD_PKT.size	; First byte is packet size
 		xor cx,0		; Empty our count



More information about the Syslinux-commits mailing list