Mercurial > vim
view runtime/syntax/sensors.vim @ 33865:8cdb69ea3711 v9.0.2143
patch 9.0.2143: [security]: buffer-overflow in ex_substitute
Commit: https://github.com/vim/vim/commit/abfa13ebe92d81aaf66669c428d767847b577453
Author: Christian Brabandt <cb@256bit.org>
Date: Thu Nov 30 11:32:18 2023 +0100
patch 9.0.2143: [security]: buffer-overflow in ex_substitute
Problem: [security]: buffer-overflow in ex_substitute
Solution: clear memory after allocating
When allocating the new_start pointer in ex_substitute() the memory
pointer points to some garbage that the following for loop in
ex_cmds.c:4743 confuses and causes it to accessing the new_start pointer
beyond it's size, leading to a buffer-overlow.
So fix this by using alloc_clear() instead of alloc(), which will
clear the memory by NUL and therefore cause the loop to terminate
correctly.
Reported by @henices, thanks!
closes: #13596
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2023 15:16:05 +0100 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Language: sensors.conf(5) - libsensors configuration file " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2006-04-19 if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn keyword sensorsTodo contained TODO FIXME XXX NOTE syn region sensorsComment display oneline start='#' end='$' \ contains=sensorsTodo,@Spell syn keyword sensorsKeyword bus chip label compute ignore set syn region sensorsName display oneline \ start=+"+ skip=+\\\\\|\\"+ end=+"+ \ contains=sensorsNameSpecial syn match sensorsName display '\w\+' syn match sensorsNameSpecial display '\\["\\rnt]' syn match sensorsLineContinue '\\$' syn match sensorsNumber display '\d*.\d\+\>' syn match sensorsRealWorld display '@' syn match sensorsOperator display '[+*/-]' syn match sensorsDelimiter display '[()]' hi def link sensorsTodo Todo hi def link sensorsComment Comment hi def link sensorsKeyword Keyword hi def link sensorsName String hi def link sensorsNameSpecial SpecialChar hi def link sensorsLineContinue Special hi def link sensorsNumber Number hi def link sensorsRealWorld Identifier hi def link sensorsOperator Normal hi def link sensorsDelimiter Normal let b:current_syntax = "sensors" let &cpo = s:cpo_save unlet s:cpo_save