diff options
author | Christian Weisgerber <naddy@cvs.openbsd.org> | 2010-06-29 04:09:35 +0000 |
---|---|---|
committer | Christian Weisgerber <naddy@cvs.openbsd.org> | 2010-06-29 04:09:35 +0000 |
commit | 8b46c9920f992d4bd87f7ed1897282b9a4e58c07 (patch) | |
tree | 8c56bd11d5efef10a587a6ac8e1849e380bc8dd3 /lib/libc | |
parent | 9d1f1706a17992becd55e7fd38d41128fbfdca86 (diff) |
Make unsetenv(NULL) and unsetenv("") give EINVAL, per POSIX. ok deraadt@
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdlib/setenv.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libc/stdlib/setenv.c b/lib/libc/stdlib/setenv.c index 2e882cdbe65..89d1e889119 100644 --- a/lib/libc/stdlib/setenv.c +++ b/lib/libc/stdlib/setenv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: setenv.c,v 1.11 2009/06/04 20:39:13 millert Exp $ */ +/* $OpenBSD: setenv.c,v 1.12 2010/06/29 04:09:34 naddy Exp $ */ /* * Copyright (c) 1987 Regents of the University of California. * All rights reserved. @@ -145,6 +145,10 @@ unsetenv(const char *name) const char *np; int offset; + if (!name || !*name) { + errno = EINVAL; + return (-1); + } for (np = name; *np && *np != '='; ++np) ; if (*np) { |