From: H. Peter Anvin Date: Tue, 14 Dec 2010 17:53:42 +0000 (-0800) Subject: core, diskstart: add more sanity checks for handover info X-Git-Tag: syslinux-4.04-pre3~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=56c070e477c96d964ed7beab216b113dac8de0ef;p=platform%2Fupstream%2Fsyslinux.git core, diskstart: add more sanity checks for handover info In particular, somehow we failed to actually test for DS:SI = 0:0! This tests both for SI < 16 and DS:SI < 1024. The former of those tests is a bit iffy and probably should be removed. This should also be promoted into isohdpfx. Signed-off-by: H. Peter Anvin --- diff --git a/core/diskstart.inc b/core/diskstart.inc index c0301d4..3fc20e2 100644 --- a/core/diskstart.inc +++ b/core/diskstart.inc @@ -180,8 +180,11 @@ harddisk: mov dx,[di-76-10] ; Original DS mov si,[di-76-12] ; Original SI shr si,4 + jz .no_partition ; SI == 0 -> assume no partition add dx,si - cmp dx,PartInfo >> 4 + cmp dx,1024 ; DS:SI < 1K (inside the IVT)? + jb .no_partition + cmp dx,PartInfo >> 4 ; DS:SI in overwritten memory? jae .no_partition test byte [di-76],7Fh ; Sanity check: "active flag" should jnz .no_partition ; be 00 or 80