From owner-freebsd-standards@FreeBSD.ORG Fri Aug 3 10:00:12 2007 Return-Path: Delivered-To: freebsd-standards@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69AD216A41B for ; Fri, 3 Aug 2007 10:00:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 503B013C428 for ; Fri, 3 Aug 2007 10:00:12 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l73A0Cbo003430 for ; Fri, 3 Aug 2007 10:00:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l73A0CWn003429; Fri, 3 Aug 2007 10:00:12 GMT (envelope-from gnats) Date: Fri, 3 Aug 2007 10:00:12 GMT Message-Id: <200708031000.l73A0CWn003429@freefall.freebsd.org> To: freebsd-standards@FreeBSD.org From: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= Cc: Subject: Re: standards/114910: getaddrinfo() fails to set ai_canonname X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2007 10:00:12 -0000 The following reply was made to PR standards/114910; it has been noted by GNATS. From: JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= To: marka@isc.org Cc: bug-followup@FreeBSD.org Subject: Re: standards/114910: getaddrinfo() fails to set ai_canonname Date: Fri, 03 Aug 2007 18:57:27 +0900 Thanks for the report. Yes, it's a bug to be fixed. I think it should be handled around reorder() rather than in getanswer() since the same problem would happen for other resolution methods. I've copied an alternate proposed patch below. JINMEI, Tatuya Communication Platform Lab. Corporate R&D Center, Toshiba Corp. jinmei@isl.rdc.toshiba.co.jp Index: getaddrinfo.c =================================================================== RCS file: /home/ncvs/src/lib/libc/net/getaddrinfo.c,v retrieving revision 1.85 diff -u -r1.85 getaddrinfo.c --- getaddrinfo.c 23 Jul 2006 15:31:03 -0000 1.85 +++ getaddrinfo.c 3 Aug 2007 09:52:57 -0000 @@ -578,8 +578,24 @@ * in the most efficient order. */ if (hints == NULL || !(hints->ai_flags & AI_PASSIVE)) { - if (!numeric) + if (!numeric) { + char *canonname; + + canonname = + sentinel.ai_next->ai_canonname; + if (canonname != NULL) { + sentinel.ai_next->ai_canonname + = NULL; + } (void)reorder(&sentinel); + if (sentinel.ai_next->ai_canonname == + NULL) { + sentinel.ai_next->ai_canonname + = canonname; + } else { + free(canonname); + } + } } *res = sentinel.ai_next; return SUCCESS;