comparison src/syntax.c @ 12180:88ca0110abd5 v8.0.0970

patch 8.0.0970: passing invalid highlight id commit https://github.com/vim/vim/commit/d6a7b3e6bbb8f87507de68d86cf70eab806aab3a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 19 21:35:35 2017 +0200 patch 8.0.0970: passing invalid highlight id Problem: if there is no StatusLine highlighting and there is StatusLineNC or StatusLineTermNC highlighting then an invalid highlight id is passed to combine_stl_hlt(). (Coverity) Solution: Check id_S to be -1 instead of zero.
author Christian Brabandt <cb@256bit.org>
date Sat, 19 Aug 2017 21:45:04 +0200
parents 68c593f649d1
children 2a8890b80923
comparison
equal deleted inserted replaced
12179:a6578fa88dc3 12180:88ca0110abd5
9997 */ 9997 */
9998 # ifdef FEAT_STL_OPT 9998 # ifdef FEAT_STL_OPT
9999 if (ga_grow(&highlight_ga, 28) == FAIL) 9999 if (ga_grow(&highlight_ga, 28) == FAIL)
10000 return FAIL; 10000 return FAIL;
10001 hlcnt = highlight_ga.ga_len; 10001 hlcnt = highlight_ga.ga_len;
10002 if (id_S == 0) 10002 if (id_S == -1)
10003 { 10003 {
10004 /* Make sure id_S is always valid to simplify code below. Use the last 10004 /* Make sure id_S is always valid to simplify code below. Use the last
10005 * entry. */ 10005 * entry. */
10006 vim_memset(&HL_TABLE()[hlcnt + 27], 0, sizeof(struct hl_group)); 10006 vim_memset(&HL_TABLE()[hlcnt + 27], 0, sizeof(struct hl_group));
10007 HL_TABLE()[hlcnt + 18].sg_term = highlight_attr[HLF_S]; 10007 HL_TABLE()[hlcnt + 18].sg_term = highlight_attr[HLF_S];