mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-01 13:17:19 +08:00
resolv: skip leading dot in domain to search
This should only happen if the domain to search is the root, represented as . rather than by an empty string. Skipping it here prevents libc_res_nquerydomain from duplicating the trailing dot, which would cause the domain name compression to fail. for ChangeLog PR 16469 * resolv/res_query.c (__libc_res_nsearch): Skip leading dot in search domain names.
This commit is contained in:
parent
ba878d017e
commit
901aad32ed
@ -413,13 +413,15 @@ __libc_res_nsearch(res_state statp,
|
||||
for (domain = (const char * const *)statp->dnsrch;
|
||||
*domain && !done;
|
||||
domain++) {
|
||||
const char *dname = domain[0];
|
||||
searched = 1;
|
||||
|
||||
if (domain[0][0] == '\0' ||
|
||||
(domain[0][0] == '.' && domain[0][1] == '\0'))
|
||||
if (dname[0] == '.')
|
||||
dname++;
|
||||
if (dname[0] == '\0')
|
||||
root_on_list++;
|
||||
|
||||
ret = __libc_res_nquerydomain(statp, name, *domain,
|
||||
ret = __libc_res_nquerydomain(statp, name, dname,
|
||||
class, type,
|
||||
answer, anslen, answerp,
|
||||
answerp2, nanswerp2,
|
||||
|
Loading…
Reference in New Issue
Block a user