diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-11-17 16:02:49 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-11-17 16:02:49 -0800 |
commit | 985cf28934f31f179bea64e1badb644007e6dec7 (patch) | |
tree | 2052cd7b0c6eca9713a098a1ac50cda712f3ebbb | |
parent | 2c2fed8305e2cf52c27d8a5c1fd5b5982f541711 (diff) | |
download | syslinux-985cf28934f31f179bea64e1badb644007e6dec7.tar.gz |
Fix invalid segment assumption in pxelinuxsyslinux-3.53-pre6
Fix an invalid segment assumption in pxelinux, which caused the
"naked ::" not to work correctly.
-rw-r--r-- | dnsresolv.inc | 4 | ||||
-rw-r--r-- | pxelinux.asm | 14 |
2 files changed, 12 insertions, 6 deletions
diff --git a/dnsresolv.inc b/dnsresolv.inc index 4fe2040a..a8f7dbd2 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 fbfc1a47..3ce89b03 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 ::? |