Mercurial > vim
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]; |