|
Message-ID: <20170119214748.12216-2-karl.bielefeldt@adtran.com> Date: Thu, 19 Jan 2017 21:49:01 +0000 From: KARL BIELEFELDT <KARL.BIELEFELDT@...ran.com> To: "musl@...ts.openwall.com" <musl@...ts.openwall.com> CC: OMADA_TEAM <OMADA_TEAM@...ran.com>, KARL BIELEFELDT <KARL.BIELEFELDT@...ran.com> Subject: [PATCH 1/2] Fix name_from_dns_search to handle errors properly. This function previously exited after the first search failure due to an inverted test condition, and incorrect testing of return codes in name_from_dns. This commit corrects those self-cancelling errors that were only evident when another type of error such as a network timeout occurred. --- src/network/lookup_name.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c index fb7303a3..bfa76d38 100644 --- a/src/network/lookup_name.c +++ b/src/network/lookup_name.c @@ -164,8 +164,8 @@ static int name_from_dns(struct address buf[static MAXADDRS], char canon[static if (ctx.cnt) return ctx.cnt; if (alens[0] < 4 || (abuf[0][3] & 15) == 2) return EAI_AGAIN; - if ((abuf[0][3] & 15) == 0) return EAI_NONAME; - if ((abuf[0][3] & 15) == 3) return 0; + if ((abuf[0][3] & 15) == 3) return EAI_NONAME; + if ((abuf[0][3] & 15) == 0) return 0; return EAI_FAIL; } @@ -201,7 +201,7 @@ static int name_from_dns_search(struct address buf[static MAXADDRS], char canon[ memcpy(canon+l+1, p, z-p); canon[z-p+1+l] = 0; int cnt = name_from_dns(buf, canon, canon, family, &conf); - if (cnt) return cnt; + if (!cnt) return cnt; } } -- 2.11.0
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.