mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.0.2111: [security]: overflow in get_number
Problem: [security]: overflow in get_number Solution: Return 0 when the count gets too large [security]: overflow in get_number When using the z= command, we may overflow the count with values larger than MAX_INT. So verify that we do not overflow and in case when an overflow is detected, simply return 0 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
060623e4a3
commit
73b2d3790c
@ -975,6 +975,8 @@ get_number(
|
|||||||
c = safe_vgetc();
|
c = safe_vgetc();
|
||||||
if (VIM_ISDIGIT(c))
|
if (VIM_ISDIGIT(c))
|
||||||
{
|
{
|
||||||
|
if (n > INT_MAX / 10)
|
||||||
|
return 0;
|
||||||
n = n * 10 + c - '0';
|
n = n * 10 + c - '0';
|
||||||
msg_putchar(c);
|
msg_putchar(c);
|
||||||
++typed;
|
++typed;
|
||||||
|
@ -1077,6 +1077,15 @@ func Test_spell_compatible()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_z_equal_with_large_count()
|
||||||
|
split
|
||||||
|
set spell
|
||||||
|
call setline(1, "ff")
|
||||||
|
norm 0z=337203685477580
|
||||||
|
set nospell
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
let g:test_data_aff1 = [
|
let g:test_data_aff1 = [
|
||||||
\"SET ISO8859-1",
|
\"SET ISO8859-1",
|
||||||
\"TRY esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",
|
\"TRY esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2111,
|
||||||
/**/
|
/**/
|
||||||
2110,
|
2110,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user