summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dnsresolv.inc4
-rw-r--r--pxelinux.asm14
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 ::?