mirror of
https://github.com/neovim/neovim.git
synced 2025-09-19 01:38:16 +00:00
coverity/62617: fix leak in set_string_default
Also constified the arguments. The double casts for the `xstrdup` are ugly but `vim_strsave` doesn't take `const` arguments for now so I couldn't keep that.
This commit is contained in:

committed by
Justin M. Keyes

parent
f39fd5b4c4
commit
731761715a
@@ -2216,21 +2216,20 @@ set_options_default (
|
|||||||
win_comp_scroll(wp);
|
win_comp_scroll(wp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/// Set the Vi-default value of a string option.
|
||||||
* Set the Vi-default value of a string option.
|
/// Used for 'sh', 'backupskip' and 'term'.
|
||||||
* Used for 'sh', 'backupskip' and 'term'.
|
///
|
||||||
*/
|
/// @param name The name of the option
|
||||||
void set_string_default(char *name, char_u *val)
|
/// @param val The value of the option
|
||||||
|
void set_string_default(const char *name, const char_u *val)
|
||||||
{
|
{
|
||||||
char_u *p;
|
int opt_idx = findoption((char_u *)name);
|
||||||
int opt_idx;
|
|
||||||
|
|
||||||
p = vim_strsave(val);
|
|
||||||
opt_idx = findoption((char_u *)name);
|
|
||||||
if (opt_idx >= 0) {
|
if (opt_idx >= 0) {
|
||||||
if (options[opt_idx].flags & P_DEF_ALLOCED)
|
if (options[opt_idx].flags & P_DEF_ALLOCED) {
|
||||||
free(options[opt_idx].def_val[VI_DEFAULT]);
|
free(options[opt_idx].def_val[VI_DEFAULT]);
|
||||||
options[opt_idx].def_val[VI_DEFAULT] = p;
|
}
|
||||||
|
|
||||||
|
options[opt_idx].def_val[VI_DEFAULT] = (char_u *) xstrdup((char *) val);
|
||||||
options[opt_idx].flags |= P_DEF_ALLOCED;
|
options[opt_idx].flags |= P_DEF_ALLOCED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user