chiark
/
gitweb
/
~ian
/
gnupg2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dirmngr: Strip root zone suffix from libdns cname results.
[gnupg2.git]
/
dirmngr
/
dns-stuff.c
diff --git
a/dirmngr/dns-stuff.c
b/dirmngr/dns-stuff.c
index a31b0731c930ffa80a626481a705fd096f4f7648..f2e1df92564cc8d62755df7463bd47aa187c9f46 100644
(file)
--- 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;
}
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);
}
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 ();
*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);
leave:
dns_free (ans);