https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=3eba4cb6762a6bbe71c5324437f39f7d6a9e4cf8
commit 3eba4cb6762a6bbe71c5324437f39f7d6a9e4cf8 Author: Anton Lavrentiev via Cygwin-patches <[email protected]> Date: Tue Jan 18 11:09:33 2022 -0500 Cygwin: resolver: Process options forward (not backwards) Also, make sure the debug setting propagates to the parser of the remainder of /etc/resolv.conf Diff: --- winsup/cygwin/libc/minires.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/libc/minires.c b/winsup/cygwin/libc/minires.c index 0979daae3..1f9da9461 100644 --- a/winsup/cygwin/libc/minires.c +++ b/winsup/cygwin/libc/minires.c @@ -86,12 +86,12 @@ Read options ***********************************************************************/ -static void get_options(res_state statp, int i, char **words) +static void get_options(res_state statp, int n, char **words) { char *ptr; - int value; + int i, value; - while (i-- > 0) { + for (i = 0; i < n; ++i) { if (!strcasecmp("debug", words[i])) { statp->options |= RES_DEBUG; DPRINTF(statp->options & RES_DEBUG, "%s: 1\n", words[i]); @@ -208,8 +208,10 @@ static void get_resolv(res_state statp) } } /* Options line */ - else if (!strncasecmp("options", words[0], sizes[0])) + else if (!strncasecmp("options", words[0], sizes[0])) { get_options(statp, i - 1, &words[1]); + debug = statp->options & RES_DEBUG; + } } } fclose(fd);
