From 9fa94aa10778bbd680315e93b23175423e338c40 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Sun, 8 Jan 2017 18:00:38 +0100 Subject: [PATCH] dirmngr: Strip root zone suffix from libdns SRV results. * dirmngr/dns-stuff.c (getsrv_libdns): Strip trailing dot from the target. -- See-also: b200e636ab20d2aa93d9f71f3789db5a04af0a56 Signed-off-by: Werner Koch --- dirmngr/dns-stuff.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c index e32e1e3e1..028b065ab 100644 --- a/dirmngr/dns-stuff.c +++ b/dirmngr/dns-stuff.c @@ -1591,6 +1591,10 @@ getsrv_libdns (const char *name, struct srventry **list, unsigned int *r_count) srv->weight = dsrv.weight; srv->port = dsrv.port; mem2str (srv->target, dsrv.target, sizeof srv->target); + /* Libdns appends the root zone part which is problematic for + * most other functions - strip it. */ + if (*srv->target && (srv->target)[strlen (srv->target)-1] == '.') + (srv->target)[strlen (srv->target)-1] = 0; } *r_count = srvcount;