From: Shao Miller Date: Tue, 15 Jun 2010 03:36:34 +0000 (-0400) Subject: memdisk: Correct El Torito termination response X-Git-Tag: syslinux-4.00-pre51~2^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=38792ac66a4d4285a06ba8b6ee5b866792f536f4;p=profile%2Fivi%2Fsyslinux.git 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 --- 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