From: Junio C Hamano Date: Wed, 28 Dec 2011 19:42:24 +0000 (-0800) Subject: Merge branch 'ef/setenv-putenv' into maint X-Git-Tag: v1.7.8.2~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e8f6b51a6bcc904b8a5fed831f718c3f9ed7ef34?hp=3c06ab69b1dba95ff73edd23c2c89a9c72b1f7f9 Merge branch 'ef/setenv-putenv' into maint * ef/setenv-putenv: compat/setenv.c: error if name contains '=' compat/setenv.c: update errno when erroring out --- diff --git a/compat/setenv.c b/compat/setenv.c index 3a22ea7b75..fc1439a643 100644 --- a/compat/setenv.c +++ b/compat/setenv.c @@ -6,7 +6,10 @@ int gitsetenv(const char *name, const char *value, int replace) size_t namelen, valuelen; char *envstr; - if (!name || !value) return -1; + if (!name || strchr(name, '=') || !value) { + errno = EINVAL; + return -1; + } if (!replace) { char *oldval = NULL; oldval = getenv(name); @@ -16,7 +19,10 @@ int gitsetenv(const char *name, const char *value, int replace) namelen = strlen(name); valuelen = strlen(value); envstr = malloc((namelen + valuelen + 2)); - if (!envstr) return -1; + if (!envstr) { + errno = ENOMEM; + return -1; + } memcpy(envstr, name, namelen); envstr[namelen] = '=';