view READMEdir/README_extra.txt @ 33784:872c07d5befe v9.0.2112

patch 9.0.2112: [security]: overflow in shift_line Commit: https://github.com/vim/vim/commit/6bf131888a3d1de62bbfa8a7ea03c0ddccfd496e Author: Christian Brabandt <cb@256bit.org> Date: Tue Nov 14 22:42:59 2023 +0100 patch 9.0.2112: [security]: overflow in shift_line Problem: [security]: overflow in shift_line Solution: allow a max indent of INT_MAX [security]: overflow in shift_line When shifting lines in operator pending mode and using a very large value, we may overflow the size of integer. Fix this by using a long variable, testing if the result would be larger than INT_MAX and if so, indent by INT_MAX value. Special case: We cannot use long here, since on 32bit architectures (or on Windows?), it typically cannot take larger values than a plain int, so we have to use long long count, decide whether the resulting multiplication of the shiftwidth value * amount is larger than INT_MAX and if so, we will store INT_MAX as possible larges value in the long long count variable. Then we can safely cast it back to int when calling the functions to set the indent (set_indent() or change_indent()). So this should be safe. Add a test that when using a huge value in operator pending mode for shifting, we will shift by INT_MAX closes: #13535 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 16 Nov 2023 22:15:15 +0100
parents 645722244c3f
children 4635e43f2c6f
line wrap: on
line source

README_extra.txt for version 9.0 of Vim: Vi IMproved.

These extra files of Vim are for special purposes.  This README explains what
the files are for.  For general information about Vim, see the "README.txt"
file.


farsi/*			Files for the Farsi (persian) language.  If you don't
			know what Farsi is, this is not for you.

src/if_sniff.*		Interface to SNiFF.  If you don't know what SNiFF is,
			this is not for you.

src/os_amiga.*		Files for the Amiga port.

src/os_msdos.*
src/os_dos.*		Files for the MS-DOS port.

src/os_mac.*		Files for the Mac port.

src/os_vms*		Files for the VMS port.

src/os_w32*
src/os_win32.*		Files for the Win32 port.

src/gui_w32.*		Files for the Win32 GUI.
src/gui_w48.*		Files for the Win32 and Win16 GUI.
src/Make_mvc.mak	MS Visual C++ makefile for the Win32 GUI.

src/if_ole.*		OLE automation interface, for MS Windows 95 and NT.

src/GvimExt/*		DLL for the "Edit with Vim" context menu entry

nsis/*			NSIS script to build the self-installing MS-Windows exe

runtime/doc/*.man	Preprocessed manual pages.

runtime/macros/file_select.vim	Vim script to browse directories (Unix only).