Date: Wed, 17 Oct 2001 13:40:13 +1000 From: Greg Black <gjb@gbch.net> To: nate@yogotech.com (Nate Williams) Cc: Zero Sum <count@shalimar.net.au>, cjclark@alum.mit.edu, "Crist J. Clark" <cristjc@earthlink.net>, Heath Nielson <heath@cs.byu.edu>, Warner Losh <imp@harmony.village.org>, David Marker <marker_d@yahoo.com>, freebsd-stable@FreeBSD.ORG Subject: Re: setenv() cores with NULL value [was Re: Gdm proplem on 4.4] Message-ID: <nospam-1003290013.25209@mx1.gbch.net> In-Reply-To: <15308.25432.608079.646993@nomad.yogotech.com> of Tue, 16 Oct 2001 10:42:00 CST References: <200110160353.f9G3rO728525@harmony.village.org> <Pine.LNX.4.33.0110152249220.8479-100000@organ.cs.byu.edu> <20011016013834.E293@blossom.cjclark.org> <200110161002.f9GA2CA08544@shalimar.net.au> <15308.25432.608079.646993@nomad.yogotech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Williams wrote: | > > > setenv("TEST1", "", 1); | > > > setenv("TEST2", NULL, 1); | > > | > > A huge difference. In the first case, the second argument is a | > > pointer aimed at a string which contains the bytes, '\0'. In the | > > second case, we have a null pointer. Null pointers point at nothing. | > | > I had that out with a compiler manufacturer long, long ago. At that | > time it was a requirement for a 'correct' C compiler to regard a null | > pointer and a pointer to a null string as sematically equivalent. | | As others have pointed out, this was never the case. | | Here's a great example of why they aren't the same thing. | | printf("%s", ""); | printf("%s", NULL); | | The first will work, the second will dump core. The second has never | worked, and should never work. Well, it has often "worked"; but it has always been wrong. The world would have been better off if people had not fudged things in past operating systems to make this incorrect code appear to work. And I think that all those printf() library functions that print "(null)" instead of allowing a core dump are doing the wrong thing too. It's wrong, so don't do it. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?nospam-1003290013.25209>