mirror of
https://github.com/opnsense/src.git
synced 2026-06-10 09:11:07 -04:00
Fix minor memory leak when expanding ${variable}s
Noticed by: Dave Hart MFC plans: after checking with re@
This commit is contained in:
parent
991e00dffb
commit
9afe6a5bf9
1 changed files with 5 additions and 1 deletions
6
usr.bin/env/envopts.c
vendored
6
usr.bin/env/envopts.c
vendored
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue