aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/env
diff options
context:
space:
mode:
authorGarance A Drosehn <gad@FreeBSD.org>2005-07-18 22:18:16 +0000
committerGarance A Drosehn <gad@FreeBSD.org>2005-07-18 22:18:16 +0000
commit9afe6a5bf97ea2bdcc32b02b3cd1d3e22b1641bd (patch)
treeb0044e44de1b5ea407496b16b5f68f0aea3c21fe /usr.bin/env
parent991e00dffb7c5279f4ab28a92f16bcd9c5518858 (diff)
Notes
Diffstat (limited to 'usr.bin/env')
-rw-r--r--usr.bin/env/envopts.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/env/envopts.c b/usr.bin/env/envopts.c
index c62da6d48b57..f8214305cc60 100644
--- a/usr.bin/env/envopts.c
+++ b/usr.bin/env/envopts.c
@@ -423,6 +423,7 @@ expand_vars(int in_thisarg, char **thisarg_p, char **dest_p, const char **src_p)
fprintf(stderr,
"#env replacing ${%s} with null string\n",
vname);
+ free(vname);
return (NULL);
}
@@ -435,8 +436,10 @@ expand_vars(int in_thisarg, char **thisarg_p, char **dest_p, const char **src_p)
* shorter than the ${VARNAME} reference that it replaces, then our
* caller can just copy the value to the existing destination.
*/
- if (strlen(vname) + 3 >= strlen(vvalue))
+ if (strlen(vname) + 3 >= strlen(vvalue)) {
+ free(vname);
return (vvalue);
+ }
/*
* The value is longer than the string it replaces, which means the
@@ -460,5 +463,6 @@ expand_vars(int in_thisarg, char **thisarg_p, char **dest_p, const char **src_p)
*newstr = '\0';
}
*dest_p = strchr(newstr, '\0');
+ free(vname);
return (vvalue);
}