Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 714823 - getaddrinfo returns PTR name in ai_canonname when using DNS
getaddrinfo returns PTR name in ai_canonname when using DNS
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: glibc (Show other bugs)
6.1
Unspecified Unspecified
unspecified Severity unspecified
: rc
: 6.2
Assigned To: Andreas Schwab
qe-baseos-tools
:
Depends On:
Blocks: 880347
  Show dependency treegraph
 
Reported: 2011-06-20 17:40 EDT by Simo Sorce
Modified: 2016-11-24 07:35 EST (History)
5 users (show)

See Also:
Fixed In Version: glibc-2.12-1.33.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-12-06 12:47:52 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2011:1526 normal SHIPPED_LIVE Low: glibc security, bug fix, and enhancement update 2011-12-05 20:02:21 EST

  None (edit)
Description Simo Sorce 2011-06-20 17:40:53 EDT
We have verified that getaddrinfo() does reverse address calls to DNS when AI_CANONNAME is passed in hints.ai_flags and returns the PTR name of the forward resolved ip address as Canonical name.

The canonical name is arguably not what is returned by the PTR record for various reasons. Aside the fact that PTR record are often not under control of the the same people that control the A name, A names can also be roundrobin names and return multiple addresses. Picking one and returnings its PTR as canonical name seem highly questionable.

A CNAME -> A name resolution is welcome as the A name is arguably the Canonical name of a CNAME. But getaddrinfo shouldn't do PTR requests to the DNS.

We found this when testing ssh+GSSAPI auth on laptops that can properly set the A record for their name usin dynamic DNS updates but cannot change the PTR record of whatever network they are currently travelling in.
This breaks kerberos which needs the canonical (A record) name to construct the principal name used to request a ticket when rdns = false is set in krb5.conf and GSSAPITrustDNS is set to no in ssh (the default).
Comment 2 Marko Myllynen 2011-06-20 18:33:00 EDT
It turned out that setting ai_family triggers this behaviour.

When calling getaddrinfo with ai_flags = AI_CANONNAME, ai_family = AF_UNSPEC then the ai_canonname returned is as expected.

When calling getaddrinfo with ai_flags = AI_CANONNAME, ai_family = AF_INET then the ai_canonname returned contains the PTR name of the forward resolved IP address as described in comment 0.
Comment 6 errata-xmlrpc 2011-12-06 12:47:52 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1526.html

Note You need to log in before you can comment on or make changes to this bug.