Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Mar 2003 16:31:13 -0600 (CST)
From:      Marius Strom <marius@marius.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   misc/50299: Resolver rejects hostnames with underscores
Message-ID:  <200303252231.h2PMVD8H079988@marius.org>

next in thread | raw e-mail | index | archive | help

>Number:         50299
>Category:       misc
>Synopsis:       Resolver rejects hostnames with underscores
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 25 14:40:12 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Marius Strom
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
marius dot org
>Environment:
System: FreeBSD sashimi.marius.org 4.7-STABLE FreeBSD 4.7-STABLE #2: Mon Nov 4 21:52:24 CST 2002 root@sashimi.marius.org:/usr/obj/usr/src/sys/SASHIMI.MARIUS.ORG-AMD i386


>Description:
FreeBSD's resolver will reject hostnames/domains that have underscores in 
them.  While RFC952 forbids these, RFC952 does not cover DNS.  RFC2181 
does, and lists no such restriction.  Other OS (Microsoft, Mac OS X, 
Linux, etc.) do not have this restriction.
	
>How-To-Repeat:
ping host_name_with_underscore.domain.tld
(subsitute ping for any tool using the FreeBSD resolver)
>Fix:
Apply this patch:

--- lib/libc/net/res_comp.c.orig	Tue Mar 25 16:23:06 2003
+++ lib/libc/net/res_comp.c	Tue Mar 25 16:24:21 2003
@@ -144,13 +144,14 @@
 #define	hyphenchar(c) ((c) == 0x2d)
 #define bslashchar(c) ((c) == 0x5c)
 #define periodchar(c) ((c) == PERIOD)
+#define uscorechar(c) ((c) == 0x5f)
 #define asterchar(c) ((c) == 0x2a)
 #define alphachar(c) (((c) >= 0x41 && (c) <= 0x5a) \
 		   || ((c) >= 0x61 && (c) <= 0x7a))
 #define digitchar(c) ((c) >= 0x30 && (c) <= 0x39)
 
 #define borderchar(c) (alphachar(c) || digitchar(c))
-#define middlechar(c) (borderchar(c) || hyphenchar(c))
+#define middlechar(c) (borderchar(c) || hyphenchar(c) || uscorechar(c))
 #define	domainchar(c) ((c) > 0x20 && (c) < 0x7f)
 
 int


>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303252231.h2PMVD8H079988>