From 0a7b4323b0f2b944dbd47a813c0c6e6813e7fd67 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 19 Oct 2022 13:33:03 -0400 Subject: dns response handling: don't treat too many addresses as an error returning -1 rather than 0 from the parse function causes __dns_parse to bail out and return an error. presently, name_from_dns does not check the return value anyway, so this does not matter, but if it ever started treating this as an error, lookups with large numbers of addresses would break. this is a consequence of adding TCP support and extending the buffer size used in name_from_dns. --- src/network/lookup_name.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/network/lookup_name.c') diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c index de0fefee..be0c0bdd 100644 --- a/src/network/lookup_name.c +++ b/src/network/lookup_name.c @@ -115,7 +115,7 @@ static int dns_parse_callback(void *c, int rr, const void *data, int len, const { char tmp[256]; struct dpc_ctx *ctx = c; - if (ctx->cnt >= MAXADDRS) return -1; + if (ctx->cnt >= MAXADDRS) return 0; switch (rr) { case RR_A: if (rr != ctx->rrtype) return 0; -- cgit v1.2.1