diff options
-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 ::? |