chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Abortive TXT handling.
[adns]
/
src
/
parse.c
diff --git
a/src/parse.c
b/src/parse.c
index 46d76fa29c1858570b6dcdd0d051bd782d44e9d8..d516d24d081b1abcf7bde8f5accc84bd0031b1f4 100644
(file)
--- a/
src/parse.c
+++ b/
src/parse.c
@@
-131,11
+131,12
@@
adns_status adns__parse_domain(adns_state ads, int serv, adns_query qu,
if (!vbuf__append_quoted1035(vb,dgram+labstart,lablen))
return adns_s_nolocalmem;
} else {
if (!vbuf__append_quoted1035(vb,dgram+labstart,lablen))
return adns_s_nolocalmem;
} else {
- if (!ctype_alpha(dgram[labstart])) return adns_s_invaliddomain;
+ ch= dgram[labstart];
+ if (!ctype_alpha(ch) && !ctype_digit(ch)) return adns_s_invalidanswerdomain;
for (i= labstart+1; i<labstart+lablen; i++) {
ch= dgram[i];
if (ch != '-' && !ctype_alpha(ch) && !ctype_digit(ch))
for (i= labstart+1; i<labstart+lablen; i++) {
ch= dgram[i];
if (ch != '-' && !ctype_alpha(ch) && !ctype_digit(ch))
- return adns_s_invaliddomain;
+ return adns_s_invalid
answer
domain;
}
if (!adns__vbuf_append(vb,dgram+labstart,lablen))
return adns_s_nolocalmem;
}
if (!adns__vbuf_append(vb,dgram+labstart,lablen))
return adns_s_nolocalmem;