standards/172273: unsetenv(3) issue according to autoconf

Ed Maste emaste at
Tue Oct 2 14:50:11 UTC 2012

>Number:         172273
>Category:       standards
>Synopsis:       unsetenv(3) issue according to autoconf
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-standards
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 02 14:50:10 UTC 2012
>Originator:     Ed Maste
>Release:        FreeBSD 9.1-PRERELEASE amd64
FreeBSD feynman 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #18 r240994M: Thu Sep 27 09:08:57 EDT 2012     emaste at feynman:/data2/emaste/obj/home/emaste/src/9/sys/TEST  amd64

GNU autoconf's unsetenv test fails on 9.1 - see test case below.


The autoconf test is reproduced below - the 'return 3' is the failing line

#include <stdlib.h>
#include <errno.h>
extern char **environ;

int main(int argc, char *argv[])
       char entry1[] = "a=1";
       char entry2[] = "b=2";
       char *env[] = { entry1, entry2, NULL };
       if (putenv ((char *) "a=1")) return 1;
       if (putenv (entry2)) return 2;
       entry2[0] = 'a';
       unsetenv ("a");
       if (getenv ("a")) return 3;
       if (!unsetenv ("") || errno != EINVAL) return 4;
       entry2[0] = 'b';
       environ = env;
       if (!getenv ("a")) return 5;
       entry2[0] = 'a';
       unsetenv ("a");
       if (getenv ("a")) return 6;
       return 0;



More information about the freebsd-standards mailing list