summaryrefslogtreecommitdiff
path: root/src/env
diff options
context:
space:
mode:
Diffstat (limited to 'src/env')
-rw-r--r--src/env/putenv.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/env/putenv.c b/src/env/putenv.c
index 181a4181..d141db13 100644
--- a/src/env/putenv.c
+++ b/src/env/putenv.c
@@ -9,14 +9,14 @@ char **__env_map;
int __putenv(char *s, int a)
{
int i=0, j=0;
- char *end = strchr(s, '=');
- size_t l = end-s+1;
+ char *z = strchr(s, '=');
char **newenv = 0;
char **newmap = 0;
static char **oldenv;
-
- if (!end || l == 1) return -1;
- for (; __environ[i] && memcmp(s, __environ[i], l); i++);
+
+ if (!z) return unsetenv(s);
+ if (z==s) return -1;
+ for (; __environ[i] && memcmp(s, __environ[i], z-s+1); i++);
if (a) {
if (!__env_map) {
__env_map = calloc(2, sizeof(char *));