Bug 789189

Summary: Space after nameserver entry in /etc/resolv.conf causes failed DNS lookups with ping6
Product: Red Hat Enterprise Linux 6 Reporter: Jeff Law <law>
Component: glibcAssignee: Jeff Law <law>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools-bugs
Severity: low Docs Contact:
Priority: unspecified    
Version: 6.3CC: fweimer, jonathan.barber, law, mfranc, pmuller
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 703239 Environment:
Last Closed: 2012-06-20 12:09:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 703239    
Bug Blocks:    

Description Jeff Law 2012-02-10 03:15:12 UTC
+++ This bug was initially created as a clone of Bug #703239 +++

Description of problem:

If /etc/resolv.conf contains an IPv6 nameserver entry with a space after the IP address, then clients only try to resolve the entry via the localhost, which fails because I don't have a nameserver locally:
# cat -e /etc/resolv.conf
nameserver 2001:470:20::2 $
# ping6 ipv6.google.com
unknown host
# strace -e connect ping6 ipv6.google.com
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = -1 ENOENT (No such file or directory)
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = -1 ENOENT (No such file or directory)
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.0.0.0")}, 28) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.0.0.0")}, 28) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.0.0.0")}, 28) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("0.0.0.0")}, 28) = 0
unknown host
# 

I'd guess the extra white space causes the resolver to treat the entry as a hostname or some other invalid entry.

This caused me some confusion until I worked out I had an extra space at the end of the line, because the "dig" and "host" tools were working correctly (they don't use the glibc resolver).

Version-Release number of selected component (if applicable):
Seen in RHEL5.1 and RHEL5.4

How reproducible:
Always

Steps to Reproduce:
1. Enter a whitespace after the IPv6 address.
2. Try to ping6 a hostname
3.
  
Actual results:
"unknown host" and ping6 returns exit code 2.

Expected results:
Normal ping output.

Additional info:

Comment 1 Jeff Law 2012-02-10 03:18:51 UTC
It's a relatively simple patch for the resolv.conf parsing code.  Proposing for RHEL 6.3.

Comment 4 errata-xmlrpc 2012-06-20 12:09:38 UTC
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/RHBA-2012-0763.html