chiark / gitweb /
gnupg2 (2.1.17-3) unstable; urgency=medium
[gnupg2.git] / debian / patches / 0014-dirmngr-Strip-root-zone-suffix-from-libdns-cname-res.patch
1 From: Werner Koch <wk@gnupg.org>
2 Date: Mon, 2 Jan 2017 10:00:33 +0100
3 Subject: dirmngr: Strip root zone suffix from libdns cname results.
4
5 * dirmngr/dns-stuff.c (resolve_name_libdns): Strip trailing dot.
6 (get_dns_cname_libdns): Ditto.
7 --
8
9 Signed-off-by: Werner Koch <wk@gnupg.org>
10 (cherry picked from commit b200e636ab20d2aa93d9f71f3789db5a04af0a56)
11 ---
12  dirmngr/dns-stuff.c | 11 +++++++++++
13  1 file changed, 11 insertions(+)
14
15 diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c
16 index a31b0731c..f2e1df925 100644
17 --- a/dirmngr/dns-stuff.c
18 +++ b/dirmngr/dns-stuff.c
19 @@ -732,6 +732,10 @@ resolve_name_libdns (const char *name, unsigned short port,
20                err = gpg_error_from_syserror ();
21                goto leave;
22              }
23 +          /* Libdns appends the root zone part which is problematic
24 +           * for most other functions - strip it.  */
25 +          if (**r_canonname && (*r_canonname)[strlen (*r_canonname)-1] == '.')
26 +            (*r_canonname)[strlen (*r_canonname)-1] = 0;
27          }
28  
29        dai = xtrymalloc (sizeof *dai + ent->ai_addrlen -1);
30 @@ -1899,6 +1903,13 @@ get_dns_cname_libdns (const char *name, char **r_cname)
31    *r_cname = xtrystrdup (cname.host);
32    if (!*r_cname)
33      err = gpg_error_from_syserror ();
34 +  else
35 +    {
36 +      /* Libdns appends the root zone part which is problematic
37 +       * for most other functions - strip it.  */
38 +      if (**r_cname && (*r_cname)[strlen (*r_cname)-1] == '.')
39 +        (*r_cname)[strlen (*r_cname)-1] = 0;
40 +    }
41  
42   leave:
43    dns_free (ans);