From 57d7cfcdb7b9cc94fa2de90a9b87eeff40f39bca Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Thu, 25 Sep 2008 03:00:04 +0000 Subject: 2008-09-24 Jeff Johnston * libc/stdlib/setenv_r.c (_unsetenv_r): Modify to return -1 only if name is NULL, empty, or contains equal sign. --- newlib/libc/stdlib/setenv_r.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'newlib/libc/stdlib') diff --git a/newlib/libc/stdlib/setenv_r.c b/newlib/libc/stdlib/setenv_r.c index e9ae76ef5..d73ba3949 100644 --- a/newlib/libc/stdlib/setenv_r.c +++ b/newlib/libc/stdlib/setenv_r.c @@ -146,9 +146,9 @@ _DEFUN (_unsetenv_r, (reent_ptr, name), { register char **P; int offset; - int rc; - - if (strchr(name, '=')) + + /* Name cannot be NULL, empty, or contain an equal sign. */ + if (name == NULL || name[0] == '\0' || strchr(name, '=')) { errno = EINVAL; return -1; @@ -156,16 +156,13 @@ _DEFUN (_unsetenv_r, (reent_ptr, name), ENV_LOCK; - rc = -1; - while (_findenv_r (reent_ptr, name, &offset)) /* if set multiple times */ { - rc = 0; for (P = &(*p_environ)[offset];; ++P) if (!(*P = *(P + 1))) break; } ENV_UNLOCK; - return (rc); + return 0; } -- cgit v1.2.3