Parcourir la source

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.
Rich Felker il y a 2 ans
Parent
commit
0a7b4323b0
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1 1
      src/network/lookup_name.c

+ 1 - 1
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;