From owner-svn-src-stable-7@FreeBSD.ORG Mon Sep 28 22:29:29 2009 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C9C7106568F; Mon, 28 Sep 2009 22:29:29 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2AAE48FC18; Mon, 28 Sep 2009 22:29:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n8SMTTiQ068089; Mon, 28 Sep 2009 22:29:29 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n8SMTTGM068086; Mon, 28 Sep 2009 22:29:29 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <200909282229.n8SMTTGM068086@svn.freebsd.org> From: Xin LI Date: Mon, 28 Sep 2009 22:29:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r197601 - in stable/7/lib/libc: . net resolv X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Sep 2009 22:29:29 -0000 Author: delphij Date: Mon Sep 28 22:29:28 2009 New Revision: 197601 URL: http://svn.freebsd.org/changeset/base/197601 Log: MFC 193023+193024: Add an option to enforce strict RFC 1034 compliance. Document how to enable strict RFC 1034 enforcements. PR: kern/129477 Modified: stable/7/lib/libc/ (props changed) stable/7/lib/libc/net/resolver.3 stable/7/lib/libc/resolv/res_comp.c Modified: stable/7/lib/libc/net/resolver.3 ============================================================================== --- stable/7/lib/libc/net/resolver.3 Mon Sep 28 22:18:38 2009 (r197600) +++ stable/7/lib/libc/net/resolver.3 Mon Sep 28 22:29:28 2009 (r197601) @@ -28,7 +28,7 @@ .\" @(#)resolver.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd November 4, 2006 +.Dd May 29, 2009 .Dt RESOLVER 3 .Os .Sh NAME @@ -401,6 +401,19 @@ function properly if the programmer atte .Va _res structure in an attempt to replace the per-thread version referred to by that macro. +.Pp +The following compile-time option can be specified to change the default +behavior of resolver routines when necessary. +.Bl -tag -width RES_ENFORCE_RFC1034 +.It Dv RES_ENFORCE_RFC1034 +If this symbol is defined during compile-time, +.Fn res_search +will enforce RFC 1034 check, namely, disallow using of underscore character +within host names. +This is used by the standard host lookup routines like +.Xr gethostbyname 3 . +For compatibility reasons this option is not enabled by default. +.El .Sh RETURN VALUES The .Fn res_init Modified: stable/7/lib/libc/resolv/res_comp.c ============================================================================== --- stable/7/lib/libc/resolv/res_comp.c Mon Sep 28 22:18:38 2009 (r197600) +++ stable/7/lib/libc/resolv/res_comp.c Mon Sep 28 22:29:28 2009 (r197601) @@ -148,7 +148,11 @@ dn_skipname(const u_char *ptr, const u_c #define digitchar(c) ((c) >= 0x30 && (c) <= 0x39) #define borderchar(c) (alphachar(c) || digitchar(c)) +#ifdef RES_ENFORCE_RFC1034 +#define middlechar(c) (borderchar(c) || hyphenchar(c)) +#else #define middlechar(c) (borderchar(c) || hyphenchar(c) || underscorechar(c)) +#endif #define domainchar(c) ((c) > 0x20 && (c) < 0x7f) int