Mercurial > vim
view runtime/syntax/cynpp.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 | 46763b01cd9a |
children |
line wrap: on
line source
" Vim syntax file " Language: Cyn++ " Maintainer: Phil Derrick <phild@forteds.com> " Last change: 2001 Sep 02 " " Language Information " " Cynpp (Cyn++) is a macro language to ease coding in Cynlib. " Cynlib is a library of C++ classes to allow hardware " modelling in C++. Combined with a simulation kernel, " the compiled and linked executable forms a hardware " simulation of the described design. " " Cyn++ is designed to be HDL-like. " " Further information can be found from www.forteds.com " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif " Read the Cynlib syntax to start with - this includes the C++ syntax runtime! syntax/cynlib.vim unlet b:current_syntax " Cyn++ extensions syn keyword cynppMacro Always EndAlways syn keyword cynppMacro Module EndModule syn keyword cynppMacro Initial EndInitial syn keyword cynppMacro Posedge Negedge Changed syn keyword cynppMacro At syn keyword cynppMacro Thread EndThread syn keyword cynppMacro Instantiate " Define the default highlighting. " Only when an item doesn't have highlighting yet hi def link cLabel Label hi def link cynppMacro Statement let b:current_syntax = "cynpp"