Mercurial > vim
view src/testdir/test91.in @ 10865:1a18c0f93ffa v8.0.0322
patch 8.0.0322: possible overflow with corrupted spell file
commit https://github.com/vim/vim/commit/399c297aa93afe2c0a39e2a1b3f972aebba44c9d
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Feb 9 21:07:12 2017 +0100
patch 8.0.0322: possible overflow with corrupted spell file
Problem: Possible overflow with spell file where the tree length is
corrupted.
Solution: Check for an invalid length (suggested by shqking)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 09 Feb 2017 21:15:04 +0100 |
parents | e8eccb9621f7 |
children | 5780bd3a5a7e |
line wrap: on
line source
Tests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar(). vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Use strings to test for memory leaks. :" First, check that in an empty window, gettabvar() returns the correct value :let t:testvar='abcd' :$put =string(gettabvar(1,'testvar')) :$put =string(gettabvar(1,'testvar')) :" Test for getbufvar() :let b:var_num = '1234' :let def_num = '5678' :$put =string(getbufvar(1, 'var_num')) :$put =string(getbufvar(1, 'var_num', def_num)) :$put =string(getbufvar(1, '')) :$put =string(getbufvar(1, '', def_num)) :unlet b:var_num :$put =string(getbufvar(1, 'var_num', def_num)) :$put =string(getbufvar(1, '')) :$put =string(getbufvar(1, '', def_num)) :$put =string(getbufvar(9, '')) :$put =string(getbufvar(9, '', def_num)) :unlet def_num :$put =string(getbufvar(1, '&autoindent')) :$put =string(getbufvar(1, '&autoindent', 1)) :" :" Open new window with forced option values :set fileformats=unix,dos :new ++ff=dos ++bin ++enc=iso-8859-2 :let otherff = getbufvar(bufnr('%'), '&fileformat') :let otherbin = getbufvar(bufnr('%'), '&bin') :let otherfenc = getbufvar(bufnr('%'), '&fenc') :close :$put =otherff :$put =string(otherbin) :$put =otherfenc :unlet otherff otherbin otherfenc :" test for getwinvar() :let w:var_str = "Dance" :let def_str = "Chance" :$put =string(getwinvar(1, 'var_str')) :$put =string(getwinvar(1, 'var_str', def_str)) :$put =string(getwinvar(1, '')) :$put =string(getwinvar(1, '', def_str)) :unlet w:var_str :$put =string(getwinvar(1, 'var_str', def_str)) :$put =string(getwinvar(1, '')) :$put =string(getwinvar(1, '', def_str)) :$put =string(getwinvar(9, '')) :$put =string(getwinvar(9, '', def_str)) :$put =string(getwinvar(1, '&nu')) :$put =string(getwinvar(1, '&nu', 1)) :unlet def_str :" :" test for gettabvar() :tabnew :tabnew :let t:var_list = [1, 2, 3] :let t:other = 777 :let def_list = [4, 5, 6, 7] :tabrewind :$put =string(gettabvar(3, 'var_list')) :$put =string(gettabvar(3, 'var_list', def_list)) :$put =string(gettabvar(3, '')) :$put =string(gettabvar(3, '', def_list)) :tablast :unlet t:var_list :tabrewind :$put =string(gettabvar(3, 'var_list', def_list)) :$put =string(gettabvar(9, '')) :$put =string(gettabvar(9, '', def_list)) :$put =string(gettabvar(3, '&nu')) :$put =string(gettabvar(3, '&nu', def_list)) :unlet def_list :tabonly :" :" test for gettabwinvar() :tabnew :tabnew :tabprev :split :split :wincmd w :vert split :wincmd w :let w:var_dict = {'dict': 'tabwin'} :let def_dict = {'dict2': 'newval'} :wincmd b :tabrewind :$put =string(gettabwinvar(2, 3, 'var_dict')) :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict)) :$put =string(gettabwinvar(2, 3, '')) :$put =string(gettabwinvar(2, 3, '', def_dict)) :tabnext :3wincmd w :unlet w:var_dict :tabrewind :$put =string(gettabwinvar(2, 3, 'var_dict', def_dict)) :$put =string(gettabwinvar(2, 3, '')) :$put =string(gettabwinvar(2, 3, '', def_dict)) :$put =string(gettabwinvar(2, 9, '')) :$put =string(gettabwinvar(2, 9, '', def_dict)) :$put =string(gettabwinvar(9, 3, '')) :$put =string(gettabwinvar(9, 3, '', def_dict)) :unlet def_dict :$put =string(gettabwinvar(2, 3, '&nux')) :$put =string(gettabwinvar(2, 3, '&nux', 1)) :tabonly :" :/^start/,$wq! test.out ENDTEST start: