compat/setenv.c: update errno when erroring out
Previously, gitsetenv didn't update errno as it should when erroring out. Fix this. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Erik Faye-Lund committed
Dec 14, 2011 at 15:07 UTC
57590c72b4d3b02e32732c7d79514c0281d6c2b5
1 file changed
+8
-2
compat/setenv.c
+8
-2
@@ -6,7 +6,10 @@ int gitsetenv(const char *name, const char *value, int replace)
6
size_t namelen, valuelen;
7
char *envstr;
8
9
- if (!name || !value) return -1;
9
+ if (!name || !value) {
10
+ errno = EINVAL;
11
+ return -1;
12
+ }
13
if (!replace) {
14
char *oldval = NULL;
15
oldval = getenv(name);
@@ -16,7 +19,10 @@ int gitsetenv(const char *name, const char *value, int replace)
19
namelen = strlen(name);
20
valuelen = strlen(value);
21
envstr = malloc((namelen + valuelen + 2));
19
- if (!envstr) return -1;
22
+ if (!envstr) {
23
+ errno = ENOMEM;
24
+ return -1;
25
+ }
26
27
memcpy(envstr, name, namelen);
28
envstr[namelen] = '=';