Hi
afl-fuzz found another crash in Vim-7.4.2311 and older:
$ cat crash.vim
augroup x
augroup! x
au VimEnter * echo
au VimEnter
$ vim -u NONE -S crash.vim
Vim: Caught deadly signal SEGV
Vim: Finished.
Segmentation fault (core dumped)
program received signal SIGSEGV, Segmentation fault.
0x000000000062cc86 in msg_puts_display (str=0x0, maxlen=-1, attr=0,
recurse=0) at message.c:1937
(gdb) bt
#0 0x000000000062cc86 in msg_puts_display (str=0x0, maxlen=-1,
attr=0, recurse=0) at message.c:1937
#1 0x000000000062c5a3 in msg_puts_attr_len (str=0x0, maxlen=-1,
attr=0) at message.c:1910
#2 0x000000000062c4e7 in msg_puts_attr (s=0x0, attr=0) at message.c:1861
#3 0x00000000004ab567 in show_autocmd (ap=0x932700,
event=EVENT_VIMENTER) at fileio.c:7816
#4 0x00000000004ac7a5 in do_autocmd_event (event=EVENT_VIMENTER,
pat=0x931f8b "", nested=0, cmd=0x931f8b "", forceit=0
, group=-3) at fileio.c:8529
#5 0x00000000004ac570 in do_autocmd (arg_in=0x931f83 "VimEnter",
forceit=0) at fileio.c:8440
#6 0x0000000000480ca1 in ex_autocmd (eap=0x7fffffffcae0) at ex_docmd.c:5488
#7 0x000000000047bdc7 in do_one_cmd (cmdlinep=0x7fffffffccf0,
sourcing=1, cstack=0x7fffffffcde0, fgetline=0x4769a3 <ge
tsourceline>, cookie=0x7fffffffd340) at ex_docmd.c:2967
#8 0x0000000000478823 in do_cmdline (cmdline=0x931e70 "augroup x",
fgetline=0x4769a3 <getsourceline>, cookie=0x7ffffff
fd340, flags=7) at ex_docmd.c:1110
#9 0x000000000047659d in do_source (fname=0x931c13 "c.vim",
check_other=0, is_vimrc=0) at ex_cmds2.c:4097
#10 0x0000000000475baf in cmd_source (fname=0x931c13 "c.vim",
eap=0x7fffffffd550) at ex_cmds2.c:3710
#11 0x0000000000475afd in ex_source (eap=0x7fffffffd550) at ex_cmds2.c:3685
#12 0x000000000047bdc7 in do_one_cmd (cmdlinep=0x7fffffffd760,
sourcing=1, cstack=0x7fffffffd850, fgetline=0x0, cookie=
0x0) at ex_docmd.c:2967
#13 0x0000000000478823 in do_cmdline (cmdline=0x8eb7e0 "so c.vim",
fgetline=0x0, cookie=0x0, flags=11) at ex_docmd.c:11
10
#14 0x0000000000477e5f in do_cmdline_cmd (cmd=0x8eb7e0 "so c.vim") at
ex_docmd.c:715
#15 0x0000000000625ac1 in exe_commands (parmp=0x8ce200 <params>) at main.c:2896
#16 0x0000000000622bee in vim_main2 () at main.c:781
#17 0x00000000006224ef in main (argc=6, argv=0x7fffffffdea8) at main.c:415
1917│ static void
1918│ msg_puts_display(
1919│ char_u *str,
1920│ int maxlen,
1921│ int attr,
1922│ int recurse)
1923│ {
1924│ char_u *s = str;
1925│ char_u *t_s = str; /* string from "t_s" to "s" is
still todo */
1926│ int t_col = 0; /* screen cells todo, 0 when
"t_s" not used */
1927│ #ifdef FEAT_MBYTE
1928│ int l;
1929│ int cw;
1930│ #endif
1931│ char_u *sb_str = str;
1932│ int sb_col = msg_col;
1933│ int wrap;
1934│ int did_last_char;
1935│
1936│ did_wait_return = FALSE;
1937├> while ((maxlen < 0 || (int)(s - str) < maxlen) && *s != NUL)
1938│ {
(gdb) p s
$1 = (char_u *) 0x0
#1 0x000000000064ac7f in msg_puts_attr_len (str=0x0, maxlen=-1,
attr=0) at message.c:1910
(gdb) up
#2 0x000000000064abc3 in msg_puts_attr (s=0x0, attr=0) at message.c:1861
(gdb) up
#3 0x00000000004b145d in show_autocmd (ap=0x959780,
event=EVENT_VIMENTER) at fileio.c:7816
7815│ if (AUGROUP_NAME(ap->group) == NULL)
7816├> msg_puts_attr(deleted_augroup, hl_attr(HLF_E));
7817│ else
7818│ msg_puts_attr(AUGROUP_NAME(ap->group), hl_attr(HLF_T));
(gdb) p deleted_augroup
$2 = (char_u *) 0x0
It does not crash using vim-7.4.752 that comes with xubuntu-15.10
so it's a regression.
git bisect identified that it started to crash in Vim-7.4.2117:
===
f2c4c391192cab6e923b1a418d4af09106fba25f is the first bad commit
commit f2c4c391192cab6e923b1a418d4af09106fba25f
Author: Bram Moolenaar <[email protected]>
Date: Fri Jul 29 20:50:24 2016 +0200
patch 7.4.2117
Problem: Deleting an augroup that still has autocmds does not give a
warning. The next defined augroup takes its place.
Solution: Give a warning and prevent the index being used for
another group
name.
===
Regards
Dominique
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.