comparison src/quickfix.c @ 13756:c38f29387245 v8.0.1750

patch 8.0.1750: crash when clearing loccation list in autocommand commit https://github.com/vim/vim/commit/3b9474b4ad4d85b5396f7f641b436f193dc9d486 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Apr 23 21:29:48 2018 +0200 patch 8.0.1750: crash when clearing loccation list in autocommand Problem: Crash when clearing loccation list in autocommand. Solution: Check if "qi" equals "ql_info". (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Mon, 23 Apr 2018 21:30:06 +0200
parents b33f04873475
children aef8ba129a4f
comparison
equal deleted inserted replaced
13755:5f94d5556dae 13756:c38f29387245
5895 long lnum; 5895 long lnum;
5896 #ifdef FEAT_MULTI_LANG 5896 #ifdef FEAT_MULTI_LANG
5897 char_u *lang; 5897 char_u *lang;
5898 #endif 5898 #endif
5899 qf_info_T *qi = &ql_info; 5899 qf_info_T *qi = &ql_info;
5900 qf_info_T *save_qi;
5901 int new_qi = FALSE; 5900 int new_qi = FALSE;
5902 win_T *wp; 5901 win_T *wp;
5903 char_u *au_name = NULL; 5902 char_u *au_name = NULL;
5904 5903
5905 #ifdef FEAT_MULTI_LANG 5904 #ifdef FEAT_MULTI_LANG
5948 if ((qi = ll_new_list()) == NULL) 5947 if ((qi = ll_new_list()) == NULL)
5949 return; 5948 return;
5950 new_qi = TRUE; 5949 new_qi = TRUE;
5951 } 5950 }
5952 } 5951 }
5953
5954 /* Autocommands may change the list. Save it for later comparison */
5955 save_qi = qi;
5956 5952
5957 regmatch.regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING); 5953 regmatch.regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING);
5958 regmatch.rm_ic = FALSE; 5954 regmatch.rm_ic = FALSE;
5959 if (regmatch.regprog != NULL) 5955 if (regmatch.regprog != NULL)
5960 { 5956 {
6084 6080
6085 if (au_name != NULL) 6081 if (au_name != NULL)
6086 { 6082 {
6087 apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, 6083 apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
6088 curbuf->b_fname, TRUE, curbuf); 6084 curbuf->b_fname, TRUE, curbuf);
6089 if (!new_qi && qi != save_qi && qf_find_buf(qi) == NULL) 6085 if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
6090 /* autocommands made "qi" invalid */ 6086 /* autocommands made "qi" invalid */
6091 return; 6087 return;
6092 } 6088 }
6093 6089
6094 /* Jump to first match. */ 6090 /* Jump to first match. */