diff options
author | Rich Felker <dalias@aerifal.cx> | 2022-09-19 15:51:04 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2022-09-19 15:51:04 -0400 |
commit | 1e7fb12f775a3e599be08da9835422d96c56f479 (patch) | |
tree | 4ab7c80ac81d06682fabe8a58d8673ffbc665542 | |
parent | 001c1afb0a08912a6fdc7c462c53e221de4bc9f1 (diff) | |
download | musl-1e7fb12f775a3e599be08da9835422d96c56f479.tar.gz musl-1e7fb12f775a3e599be08da9835422d96c56f479.tar.xz musl-1e7fb12f775a3e599be08da9835422d96c56f479.zip |
dns: treat names rejected by res_mkquery as nonexistent rather than error
this distinction only affects search, but allows search to continue when concatenating one of the search domains onto the requested name produces a result that's not valid. this can happen when the concatenation is too long, or one of the search list entries is itself not valid. as a consequence of this change, having "." in the search domains list will now be ignored/skipped rather than making the lookup abort with no results (due to producing a concatenation ending in ".."). this behavior could be changed later if needed.
-rw-r--r-- | src/network/lookup_name.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c index b5232ce8..bec6ba22 100644 --- a/src/network/lookup_name.c +++ b/src/network/lookup_name.c @@ -153,7 +153,7 @@ static int name_from_dns(struct address buf[static MAXADDRS], char canon[static qlens[nq] = __res_mkquery(0, name, 1, afrr[i].rr, 0, 0, 0, qbuf[nq], sizeof *qbuf); if (qlens[nq] == -1) - return EAI_NONAME; + return 0; qbuf[nq][3] = 0; /* don't need AD flag */ /* Ensure query IDs are distinct. */ if (nq && qbuf[nq][0] == qbuf[0][0]) |