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