vim-patch:8.0.1409: buffer overflow in :tags command

Problem:    Buffer overflow in :tags command.
Solution:   Use vim_snprintf(). (Dominique Pelle, closes vim/vim#2471, closes vim/vim#2475)
            Add a test.
132f75255e
This commit is contained in:
Jan Edmund Lazo 2018-08-14 11:59:09 -04:00
parent 1daf2cb0ea
commit 8e2a892e70
2 changed files with 7 additions and 2 deletions

View File

@ -952,7 +952,7 @@ void do_tags(exarg_T *eap)
continue;
msg_putchar('\n');
sprintf((char *)IObuff, "%c%2d %2d %-15s %5ld ",
vim_snprintf((char *)IObuff, IOSIZE, "%c%2d %2d %-15s %5ld ",
i == tagstackidx ? '>' : ' ',
i + 1,
tagstack[i].cur_match + 1,

View File

@ -1,4 +1,4 @@
" test 'taglist' function
" test 'taglist' function and :tags command
func Test_taglist()
call writefile([
@ -56,3 +56,8 @@ func Test_taglist_ctags_etags()
call delete('Xtags')
endfunc
func Test_tags_too_long()
call assert_fails('tag ' . repeat('x', 1020), 'E426')
tags
endfunc