From owner-freebsd-bugs@FreeBSD.ORG Thu Aug 8 02:20:00 2013 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E77389A4 for ; Thu, 8 Aug 2013 02:20:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C3CA42C00 for ; Thu, 8 Aug 2013 02:20:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r782K0No039942 for ; Thu, 8 Aug 2013 02:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r782K0r0039941; Thu, 8 Aug 2013 02:20:00 GMT (envelope-from gnats) Resent-Date: Thu, 8 Aug 2013 02:20:00 GMT Resent-Message-Id: <201308080220.r782K0r0039941@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Garrett Cooper Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B8FD87EA for ; Thu, 8 Aug 2013 02:11:49 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 971B82BBF for ; Thu, 8 Aug 2013 02:11:49 +0000 (UTC) Received: from oldred.freebsd.org ([127.0.1.6]) by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r782BngU000119 for ; Thu, 8 Aug 2013 02:11:49 GMT (envelope-from nobody@oldred.freebsd.org) Received: (from nobody@localhost) by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r782BnsS000117; Thu, 8 Aug 2013 02:11:49 GMT (envelope-from nobody) Message-Id: <201308080211.r782BnsS000117@oldred.freebsd.org> Date: Thu, 8 Aug 2013 02:11:49 GMT From: Garrett Cooper To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: kern/181127: [PATCH] set{domain, host}name doesn't permit NUL terminated strings that are MAXHOSTNAMELEN long X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Aug 2013 02:20:01 -0000 >Number: 181127 >Category: kern >Synopsis: [PATCH] set{domain,host}name doesn't permit NUL terminated strings that are MAXHOSTNAMELEN long >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Aug 08 02:20:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Garrett Cooper >Release: 10-CURRENT >Organization: EMC Isilon >Environment: FreeBSD gran-tourismo.west.isilon.com 10.0-CURRENT FreeBSD 10.0-CURRENT #8 bc57ffb: Fri Aug 2 15:14:32 PDT 2013 root@:/usr/obj/usr/src/sys/GRAN-TOURISMO amd64 >Description: The noted link/patch fixes POSIX and generic requirement compliance for set{domain,host}name per the manpages by accounting for the fact that the string must be NUL terminated. Found with the NetBSD t_set{domain,host}name testcases: Before: $ pwd /usr/tests/lib/libc/gen $ sudo atf-run t_setdomainname | atf-report t_setdomainname (1/1): 3 test cases setdomainname_basic: [0.019497s] Failed: /usr/src/lib/libc/tests/gen/t_setdomainname.c:66: setdomainname(domains[i],sizeof(domains[i])) == 0 not met setdomainname_limit: [0.004173s] Passed. setdomainname_perm: [0.005297s] Passed. [0.029872s] Failed test cases: t_setdomainname:setdomainname_basic Summary for 1 test programs: 2 passed test cases. 1 failed test cases. 0 expected failed test cases. 0 skipped test cases. After: # atf-run t_setdomainname t_sethostname | atf-report t_setdomainname (1/2): 3 test cases setdomainname_basic: [0.004606s] Passed. setdomainname_limit: [0.004276s] Passed. setdomainname_perm: [0.004848s] Passed. [0.014680s] t_sethostname (2/2): 3 test cases sethostname_basic: [0.003908s] Passed. sethostname_limit: [0.004842s] Passed. sethostname_perm: [0.004738s] Passed. [0.014337s] Summary for 2 test programs: 6 passed test cases. 0 failed test cases. 0 expected failed test cases. 0 skipped test cases. >How-To-Repeat: >Fix: Patch attached with submission follows: >From 1b8333ca810b682d8ef049887a3b6cc9abd80807 Mon Sep 17 00:00:00 2001 From: Garrett Cooper Date: Wed, 7 Aug 2013 18:59:44 -0700 Subject: [PATCH] Permit setting hostnames that are MAX_HOSTNAMELEN long and are NUL terminated Sponsored-by: EMC Isilon --- sys/kern/kern_mib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index c84d4b2..384c14d 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -266,7 +266,7 @@ sysctl_hostname(SYSCTL_HANDLER_ARGS) { struct prison *pr, *cpr; size_t pr_offset; - char tmpname[MAXHOSTNAMELEN]; + char tmpname[MAXHOSTNAMELEN+1]; int descend, error, len; /* @@ -314,11 +314,11 @@ sysctl_hostname(SYSCTL_HANDLER_ARGS) SYSCTL_PROC(_kern, KERN_HOSTNAME, hostname, CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, - (void *)(offsetof(struct prison, pr_hostname)), MAXHOSTNAMELEN, + (void *)(offsetof(struct prison, pr_hostname)), MAXHOSTNAMELEN+1, sysctl_hostname, "A", "Hostname"); SYSCTL_PROC(_kern, KERN_NISDOMAINNAME, domainname, CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, - (void *)(offsetof(struct prison, pr_domainname)), MAXHOSTNAMELEN, + (void *)(offsetof(struct prison, pr_domainname)), MAXHOSTNAMELEN+1, sysctl_hostname, "A", "Name of the current YP/NIS domain"); SYSCTL_PROC(_kern, KERN_HOSTUUID, hostuuid, CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_PRISON | CTLFLAG_MPSAFE, -- 1.8.3.4 >Release-Note: >Audit-Trail: >Unformatted: