mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Fix xfree of static value in expand_shellcmd()
The refactoring of vim_getenv() to remove the mustfree arg included reworking calling functions. expand_shellcmd was also using that to track its usage of the variable within the function, resulting in #2487. This change addresses that scenario and cleans up some of the function for style.
This commit is contained in:
parent
04e098fc3c
commit
b68ce1460d
@ -3841,6 +3841,7 @@ static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file,
|
||||
|
||||
flags |= EW_FILE | EW_EXEC;
|
||||
|
||||
bool mustfree = false; // Track memory allocation for *path.
|
||||
/* For an absolute name we don't use $PATH. */
|
||||
if (path_is_absolute_path(pat))
|
||||
path = (char_u *)" ";
|
||||
@ -3849,8 +3850,11 @@ static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file,
|
||||
path = (char_u *)".";
|
||||
else {
|
||||
path = (char_u *)vim_getenv("PATH");
|
||||
if (path == NULL)
|
||||
if (path == NULL) {
|
||||
path = (char_u *)"";
|
||||
} else {
|
||||
mustfree = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -3899,7 +3903,9 @@ static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file,
|
||||
|
||||
xfree(buf);
|
||||
xfree(pat);
|
||||
xfree(path);
|
||||
if (mustfree) {
|
||||
xfree(path);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user