From 9c34711539fc2c34aea8da0fd49ae6aa28991518 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Tue, 1 Dec 2015 13:24:38 +0100 Subject: dirmngr: Improve error handling. * dirmngr/dns-stuff.c (getsrv): Avoid looking at 'header' before checking for errors, but silently ignore errors when looking up SRV records. -- This is a follow-up to 946faaff. Signed-off-by: Justus Winter --- dirmngr/dns-stuff.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c index b3ad9bcd1..1bf6cfcd9 100644 --- a/dirmngr/dns-stuff.c +++ b/dirmngr/dns-stuff.c @@ -1086,10 +1086,9 @@ getsrv (const char *name,struct srventry **list) return -1; r = res_query (name, C_IN, T_SRV, answer, sizeof answer); - if (header->rcode != NOERROR || !(count=ntohs (header->ancount))) + if (r < sizeof (HEADER) || r > sizeof answer + || header->rcode != NOERROR || !(count=ntohs (header->ancount))) return 0; /* Error or no record found. */ - if (r < sizeof (HEADER) || r > sizeof answer) - return -1; emsg = &answer[r]; pt = &answer[sizeof(HEADER)]; -- cgit v1.2.3