forked from aniani/vim
patch 8.0.0078
Problem: Accessing freed memory in quickfix. Solution: Reset pointer when freeing 'errorformat'. (Domenique Pelle)
This commit is contained in:
@@ -114,6 +114,8 @@ struct efm_S
|
||||
int conthere; /* %> used */
|
||||
};
|
||||
|
||||
static efm_T *fmt_start = NULL; /* cached across qf_parse_line() calls */
|
||||
|
||||
static int qf_init_ext(qf_info_T *qi, char_u *efile, buf_T *buf, typval_T *tv, char_u *errorformat, int newlist, linenr_T lnumfirst, linenr_T lnumlast, char_u *qf_title);
|
||||
static void qf_store_title(qf_info_T *qi, char_u *title);
|
||||
static void qf_new_list(qf_info_T *qi, char_u *qf_title);
|
||||
@@ -389,6 +391,7 @@ free_efm_list(efm_T **efm_first)
|
||||
vim_regfree(efm_ptr->prog);
|
||||
vim_free(efm_ptr);
|
||||
}
|
||||
fmt_start = NULL;
|
||||
}
|
||||
|
||||
/* Parse 'errorformat' option */
|
||||
@@ -786,7 +789,6 @@ qf_parse_line(
|
||||
qffields_T *fields)
|
||||
{
|
||||
efm_T *fmt_ptr;
|
||||
static efm_T *fmt_start = NULL; /* cached across calls */
|
||||
char_u *ptr;
|
||||
int len;
|
||||
int i;
|
||||
|
Reference in New Issue
Block a user