diff options
author | Shao Miller <shao.miller@yrdsb.edu.on.ca> | 2010-06-14 23:36:34 -0400 |
---|---|---|
committer | Shao Miller <shao.miller@yrdsb.edu.on.ca> | 2010-06-15 00:48:50 -0400 |
commit | 38792ac66a4d4285a06ba8b6ee5b866792f536f4 (patch) | |
tree | 939c7bbf7124c2326dd558694f59e6fed6dce66f /memdisk | |
parent | 62ac3a7710b846c66a190156a11b7170015e7afb (diff) | |
download | syslinux-38792ac66a4d4285a06ba8b6ee5b866792f536f4.tar.gz |
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@yrdsb.edu.on.ca>
Diffstat (limited to 'memdisk')
-rw-r--r-- | memdisk/memdisk.inc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/memdisk/memdisk.inc b/memdisk/memdisk.inc index 90e6ef9f..91040bad 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 |