X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=gnupg2.git;a=blobdiff_plain;f=dirmngr%2Fdns-stuff.c;fp=dirmngr%2Fdns-stuff.c;h=f2e1df92564cc8d62755df7463bd47aa187c9f46;hp=a31b0731c930ffa80a626481a705fd096f4f7648;hb=b707b6f904aa15058738acce751d13d1a89a03fa;hpb=274e1e9ce472b397993b8cc28b7cf627f04272f3 diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c index a31b073..f2e1df9 100644 --- a/dirmngr/dns-stuff.c +++ b/dirmngr/dns-stuff.c @@ -732,6 +732,10 @@ resolve_name_libdns (const char *name, unsigned short port, err = gpg_error_from_syserror (); goto leave; } + /* Libdns appends the root zone part which is problematic + * for most other functions - strip it. */ + if (**r_canonname && (*r_canonname)[strlen (*r_canonname)-1] == '.') + (*r_canonname)[strlen (*r_canonname)-1] = 0; } dai = xtrymalloc (sizeof *dai + ent->ai_addrlen -1); @@ -1899,6 +1903,13 @@ get_dns_cname_libdns (const char *name, char **r_cname) *r_cname = xtrystrdup (cname.host); if (!*r_cname) err = gpg_error_from_syserror (); + else + { + /* Libdns appends the root zone part which is problematic + * for most other functions - strip it. */ + if (**r_cname && (*r_cname)[strlen (*r_cname)-1] == '.') + (*r_cname)[strlen (*r_cname)-1] = 0; + } leave: dns_free (ans);