From owner-freebsd-arch@FreeBSD.ORG Thu May 3 04:23:06 2007 Return-Path: X-Original-To: arch@freebsd.org Delivered-To: freebsd-arch@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D3FEE16A404 for ; Thu, 3 May 2007 04:23:06 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 9862E13C45B for ; Thu, 3 May 2007 04:23:06 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.ntplx.net (8.14.0/8.14.0/NETPLEX) with ESMTP id l434Mq0A005680; Thu, 3 May 2007 00:22:52 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-3.0 (mail.ntplx.net [204.213.176.10]); Thu, 03 May 2007 00:22:52 -0400 (EDT) Date: Thu, 3 May 2007 00:22:52 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: "Sean C. Farley" In-Reply-To: <20070502230413.Y30614@thor.farley.org> Message-ID: References: <20070501083009.GA4627@nagual.pp.ru> <20070501160645.GA9333@nagual.pp.ru> <20070501135439.B36275@thor.farley.org> <20070502.102822.-957833022.imp@bsdimp.com> <20070502183100.P1317@baba.farley.org> <20070502230413.Y30614@thor.farley.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: arch@freebsd.org Subject: Re: HEADS DOWN X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 May 2007 04:23:06 -0000 On Wed, 2 May 2007, Sean C. Farley wrote: > On Wed, 2 May 2007, Daniel Eischen wrote: > >> On Wed, 2 May 2007, Sean C. Farley wrote: > > > >>> 2. getenv() sets errno to EINVAL and returns NULL if given a bad name >>> to find. setenv() and unsetenv() perform the same check on the >>> name; should not getenv() do the same? The check is easy to >>> remove. >> >> I don't think getenv() should set errno. The fact that it >> returns NULL is sufficient and POSIX doesn't define any errors >> for it. > > Fixed for errno. Also, no value is appropriate for errno when the name > does not exist. How about the feature that getenv() returns a NULL for > a bad name instead of allowing a core dump? Is that acceptable? I thought that is what I said above ;-) POSIX says this about getenv(): Upon successful completion, getenv() shall return a pointer to a string containing the value for the specified name. If the specified name cannot be found in the environment of the calling process, a null pointer shall be returned. I'd argue that a bad name is the same thing as if it were a good name but couldn't be found. You really don't want a core dump unless you have to jump through too many hoops to prevent one. As long as the name is a valid pointer to a valid string, then you should just search the environment for the string. It looks like the only character not allowed is '='. -- DE