fix for setenv bogus var argument handling
authorRich Felker <dalias@aerifal.cx>
Fri, 29 Jul 2011 00:43:40 +0000 (20:43 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 29 Jul 2011 00:43:40 +0000 (20:43 -0400)
thanks to mikachu

per POSIX:

The setenv() function shall fail if:

[EINVAL] The name argument is a null pointer, points to an empty
string, or points to a string containing an '=' character.

src/env/setenv.c

index 03e165c..c2c2544 100644 (file)
@@ -9,7 +9,7 @@ int setenv(const char *var, const char *value, int overwrite)
        char *s;
        int l1, l2;
 
        char *s;
        int l1, l2;
 
-       if (strchr(var, '=')) {
+       if (!var || !*var || strchr(var, '=')) {
                errno = EINVAL;
                return -1;
        }
                errno = EINVAL;
                return -1;
        }