2008-09-24 Jeff Johnston <jjohnstn@redhat.com>

* libc/stdlib/setenv_r.c (_unsetenv_r): Modify to return -1 only if
        name is NULL, empty, or contains equal sign.
This commit is contained in:
Jeff Johnston 2008-09-25 03:00:04 +00:00
parent 37f996a2b2
commit 57d7cfcdb7
2 changed files with 9 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2008-09-24 Jeff Johnston <jjohnstn@redhat.com>
* libc/stdlib/setenv_r.c (_unsetenv_r): Modify to return -1 only if
name is NULL, empty, or contains equal sign.
2008-09-24 Pawel Veselov <pawel.veselov@gmail.com>
Fix setenv/getenv/unsetenv to be OpenGroup compliant:

View File

@ -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;
}