1
0
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:
Bram Moolenaar
2016-11-12 15:36:54 +01:00
parent e3505dfc85
commit 63bed3d319
3 changed files with 15 additions and 1 deletions

View File

@@ -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;