Mercurial > vim
view .gitignore @ 33864:6e4c686b6b5b v9.0.2142
patch 9.0.2142: [security]: stack-buffer-overflow in option callback functions
Commit: https://github.com/vim/vim/commit/b39b240c386a5a29241415541f1c99e2e6b8ce47
Author: Christian Brabandt <cb@256bit.org>
Date: Wed Nov 29 11:34:05 2023 +0100
patch 9.0.2142: [security]: stack-buffer-overflow in option callback functions
Problem: [security]: stack-buffer-overflow in option callback functions
Solution: pass size of errbuf down the call stack, use snprintf()
instead of sprintf()
We pass the error buffer down to the option callback functions, but in
some parts of the code, we simply use sprintf(buf) to write into the error
buffer, which can overflow.
So let's pass down the length of the error buffer and use sprintf(buf, size)
instead.
Reported by @henices, thanks!
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2023 15:16:04 +0100 |
parents | 7aeaf20e2ba5 |
children | 776cb5c73d6f |
line wrap: on
line source
# Unixen: object and executable files. *.o src/vim src/xxd/xxd src/auto/if_perl.c src/auto/gui_gtk_gresources.c src/auto/gui_gtk_gresources.h src/auto/os_haiku.rdef src/objects/.dirstamp src/objects src/types.vim # We do need src/auto/configure. src/auto/config.cache src/auto/config.h src/auto/config.log src/auto/config.mk src/auto/config.status src/auto/osdef.h src/auto/link.log src/auto/link.sed src/auto/pathdef.c # Windows *.exe *.idb *.exp *.map *.obj *.pdb *.ilk *.sln *.suo *.res *.RES vim*.dll vim*.lib src/dobj*/pathdef.c src/gobj*/pathdef.c src/obj*/pathdef.c src/Obj*/pathdef.c gvimext.dll gvimext.lib gvim.lib runtime/doc/uganda.nsis.txt nsis/icons/* /vim90/ .vscode/ # NetBeans nbproject/* # Mac OSX src/xxd/xxd.dSYM .DS_Store # All platforms *.rej *.orig *.mo *.swp *~ *.pyc *.log src/po/vim.pot src/tags /tags /GPATH /GTAGS /GRTAGS nsis/tags # Generated by "make test" src/po/*.ck src/po/*.desktop src/testdir/mbyte.vim src/testdir/mzscheme.vim src/testdir/lua.vim src/testdir/small.vim src/testdir/tiny.vim src/testdir/test*.out src/testdir/test*.failed src/testdir/test.log src/testdir/dostmp/* src/testdir/messages src/testdir/viminfo src/testdir/opt_test.vim src/testdir/failed src/testdir/starttime runtime/indent/testdir/*.out runtime/indent/testdir/*.fail src/memfile_test src/json_test src/message_test src/kword_test # Generated by "make install" runtime/doc/doctags # Generated by "make shadow". The directory names could be anything but we # restrict them to shadow (the default) or shadow-* src/shadow src/shadow-* src/runtime src/pixmaps # other files possibly created by tools src/cscope.out # Linter/language server files /.cache/clangd/ /.ccls-cache/ /compile_commands.json