From: H. Peter Anvin Date: Sun, 18 Nov 2007 00:02:49 +0000 (-0800) Subject: Fix invalid segment assumption in pxelinux X-Git-Tag: syslinux-3.53-pre6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Fsyslinux-3.53-pre6;p=platform%2Fupstream%2Fsyslinux.git Fix invalid segment assumption in pxelinux Fix an invalid segment assumption in pxelinux, which caused the "naked ::" not to work correctly. --- diff --git a/dnsresolv.inc b/dnsresolv.inc index 4fe2040..a8f7dbd 100644 --- a/dnsresolv.inc +++ b/dnsresolv.inc @@ -182,7 +182,9 @@ LastDNSServer dw DNSServers ; Points to a null-terminated or :-terminated string in DS:SI ; and returns the name in EAX if it exists and can be found. ; If EAX = 0 on exit, the lookup failed. - +; +; No segment assumptions permitted. +; section .text dns_resolv: push ds diff --git a/pxelinux.asm b/pxelinux.asm index fbfc1a4..3ce89b0 100644 --- a/pxelinux.asm +++ b/pxelinux.asm @@ -1382,11 +1382,13 @@ free_socket: ; ; parse_dotquad: -; Read a dot-quad pathname in DS:SI and output an IP -; address in EAX, with SI pointing to the first -; nonmatching character. +; Read a dot-quad pathname in DS:SI and output an IP +; address in EAX, with SI pointing to the first +; nonmatching character. ; -; Return CF=1 on error. +; Return CF=1 on error. +; +; No segment assumptions permitted. ; parse_dotquad: push cx @@ -1436,10 +1438,12 @@ parse_dotquad: ; The first four bytes of the manged name is the IP address of ; the download host. ; +; No segment assumptions permitted. +; mangle_name: push di push si - mov eax,[ServerIP] + mov eax,[cs:ServerIP] cmp byte [si],0 je .noip ; Null filename?!?! cmp word [si],'::' ; Leading ::?