const char *cp;
size_t esize;
- if (env.envp == NULL)
- env_init(TRUE);
-
if (!var || *var == '\0') {
errno = EINVAL;
return(-1);
}
+ if (env.envp == NULL)
+ env_init(TRUE);
+
/*
* POSIX says a var name with '=' is an error but BSD
* just ignores the '=' and anything after it.
char **ep;
size_t len;
- if (env.envp == NULL)
- env_init(TRUE);
-
- if (strchr(var, '=') != NULL) {
+ if (var == NULL || *var == '\0' || strchr(var, '=') != NULL) {
errno = EINVAL;
#ifdef UNSETENV_VOID
return;
#endif
}
+ if (env.envp == NULL)
+ env_init(TRUE);
+
#ifdef ENV_DEBUG
if (env.envp[env.env_len] != NULL)
errorx(1, "unsetenv: corrupted envp, len mismatch");