From owner-freebsd-bugs@FreeBSD.ORG Wed Feb 18 07:20:15 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4EDB316A4CF for ; Wed, 18 Feb 2004 07:20:15 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2E5A043D2F for ; Wed, 18 Feb 2004 07:20:15 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i1IFKFbv062608 for ; Wed, 18 Feb 2004 07:20:15 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i1IFKFWj062607; Wed, 18 Feb 2004 07:20:15 -0800 (PST) (envelope-from gnats) Resent-Date: Wed, 18 Feb 2004 07:20:15 -0800 (PST) Resent-Message-Id: <200402181520.i1IFKFWj062607@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, Cian Synnott Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CDA0716A4CE for ; Wed, 18 Feb 2004 07:10:45 -0800 (PST) Received: from mail10.svc.cra.dublin.eircom.net (mail10.svc.cra.dublin.eircom.net [159.134.118.26]) by mx1.FreeBSD.org (Postfix) with SMTP id 59A3643D2D for ; Wed, 18 Feb 2004 07:10:45 -0800 (PST) (envelope-from cian@hardy.cirt.eircom.net) Received: (qmail 80354 messnum 9268892 invoked from network[159.134.222.104/unknown]); 18 Feb 2004 15:10:44 -0000 Received: from unknown (HELO hardy.cirt.eircom.net) (159.134.222.104) by mail10.svc.cra.dublin.eircom.net (qp 80354) with SMTP; 18 Feb 2004 15:10:44 -0000 Received: (from cian@localhost) by hardy.cirt.eircom.net (8.12.10/8.12.9/Submit) id i1IF7TgW079952; Wed, 18 Feb 2004 15:07:29 GMT (envelope-from cian) Message-Id: <20040218150729.GA79940@hardy.cirt.eircom.net> Date: Wed, 18 Feb 2004 15:07:29 +0000 From: Cian Synnott To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 cc: cirt@eircom.net Subject: misc/63020: 'utsname' structure field 'nodename' is too short X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Cian Synnott List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Feb 2004 15:20:15 -0000 >Number: 63020 >Category: misc >Synopsis: 'utsname' structure field 'nodename' is too short >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: Wed Feb 18 07:20:14 PST 2004 >Closed-Date: >Last-Modified: >Originator: Cian Synnott >Release: FreeBSD 4.9-STABLE i386 >Organization: eircom.net Computer Incident Response Team >Environment: System: FreeBSD hardy.cirt.eircom.net 4.9-STABLE FreeBSD 4.9-STABLE #2: Fri Dec 19 14:38:17 GMT 2003 root@hardy.cirt.eircom.net:/usr/obj/usr/src/sys/HARDY i386 >Description: The utsname structure defined in the sys/utsname.h has a maximum of 32 characters on all fields, including the 'nodename' - the network name of the machine. This could reasonably be expected by a programmer using the uname() call to be MAXHOSTNAMELEN in length. However, long hostnames returned from the wrapped sysctl() are truncated. >How-To-Repeat: Compile up something like this: #include #include int main() { struct utsname buf; uname (&buf); printf ("nodename: %s\n", buf.nodename); return 0; } Then set your hostname to, say verylongnameindeed.subdomain.domain.tld and run the code. Compare output with that of '/usr/bin/uname', which directly calls sysctl(). >Fix: Have your program use gethostname() rather than uname() to workaround. I expect a proper fix would be alter the utsname structure and uname() to use proper lengths on structure fields. >Release-Note: >Audit-Trail: >Unformatted: