forked from aniani/vim
Problem: potential buffer-underflow with invalid hl_id (mugitya03) Solution: assert that the return-code of syn_get_final_id() if > 0 As a safety check, syn_get_final_id() may return zero when either the provided hl_id is zero or larger than expected. However, many callers of syn_get_final_id() do not check that the return value is larger than zero but re-use the returned highlight id directly like this: hl_id = syn_get_final_id(hl_id); sgp = &HL_TABLE()[hl_id - 1]; // index is ID minus one in which case, this would cause a buffer underrun and an access violation. Let's use assert(hl_id > 0); to make sure that hl_id is larger than zero. Note to myself: I'll need to compile releases builds using -DNDEBUG once a new release will be made fixes: #17475 closes: #17512 Signed-off-by: Christian Brabandt <cb@256bit.org>
20 KiB
20 KiB