vim-patch:8.2.4453: :helpgrep may free an option that was not allocated

Problem:    :helpgrep may free an option that was not allocated. (Yegappan
            Lakshmanan)
Solution:   Check if the value was allocated.
4791fcd825
This commit is contained in:
zeertzjq
2022-10-13 09:43:06 +08:00
parent 34c7007c32
commit 73bdfdd382
3 changed files with 37 additions and 1 deletions

View File

@@ -7065,6 +7065,7 @@ void ex_helpgrep(exarg_T *eap)
bool updated = false;
// Make 'cpoptions' empty, the 'l' flag should not be used here.
char *const save_cpo = p_cpo;
const bool save_cpo_allocated = is_option_allocated("cpo");
p_cpo = empty_option;
bool new_qi = false;
@@ -7104,7 +7105,9 @@ void ex_helpgrep(exarg_T *eap)
if (*p_cpo == NUL) {
set_option_value_give_err("cpo", 0L, save_cpo, 0);
}
free_string_option(save_cpo);
if (save_cpo_allocated) {
free_string_option(save_cpo);
}
}
if (updated) {