Properly process extra nameserver lines in resolv.conf

The whole line needs to be read rather than just the token "nameserver"
otherwise the next line in resolv.conf is not properly processed.

(cherry picked from commit 864cd08052)
This commit is contained in:
Mark Andrews
2023-05-15 10:34:16 +10:00
parent 4620384b5b
commit d7c1094d10

View File

@@ -290,10 +290,6 @@ resconf_parsenameserver(irs_resconf_t *conf, FILE *fp) {
int cp;
isc_result_t result;
if (conf->numns == RESCONFMAXNAMESERVERS) {
return (ISC_R_SUCCESS);
}
cp = getword(fp, word, sizeof(word));
if (strlen(word) == 0U) {
return (ISC_R_UNEXPECTEDEND); /* Nothing on line. */
@@ -305,6 +301,10 @@ resconf_parsenameserver(irs_resconf_t *conf, FILE *fp) {
return (ISC_R_UNEXPECTEDTOKEN); /* Extra junk on line. */
}
if (conf->numns == RESCONFMAXNAMESERVERS) {
return (ISC_R_SUCCESS);
}
result = add_server(conf->mctx, word, &conf->nameservers);
if (result != ISC_R_SUCCESS) {
return (result);