Dominique wrote:
> afl-fuzz found another crash in vim-7.4.1558:
>
> $ vim -U NONE -N -c "call assert_fails('l', json_decode('{}'))"
> Vim: Caught deadly signal SEGV
> Vim: Finished.
> Segmentation fault (core dumped)
>
> Valgrind reports:
>
> ==4665== Memcheck, a memory error detector
> ==4665== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
> ==4665== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
> ==4665== Command: ./vim -u NONE -N -S c.vim -c qa!
> ==4665==
> ==4665== Invalid read of size 1
> ==4665== at 0x403381C: strstr (in
> /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
> ==4665== by 0x8083E96: f_assert_fails (eval.c:9307)
> ==4665== by 0x80830C6: call_func (eval.c:8798)
> ==4665== by 0x8082B9A: get_func_tv (eval.c:8597)
> ==4665== by 0x807B6CB: ex_call (eval.c:3526)
> ==4665== by 0x80B78EB: do_one_cmd (ex_docmd.c:2921)
> ==4665== by 0x80B4BF7: do_cmdline (ex_docmd.c:1107)
> ==4665== by 0x80B2B42: do_source (ex_cmds2.c:3727)
> ==4665== by 0x80B223A: cmd_source (ex_cmds2.c:3340)
> ==4665== by 0x80B2198: ex_source (ex_cmds2.c:3315)
> ==4665== by 0x80B78EB: do_one_cmd (ex_docmd.c:2921)
> ==4665== by 0x80B4BF7: do_cmdline (ex_docmd.c:1107)
> ==4665== Address 0x0 is not stack'd, malloc'd or (recently) free'd
>
> Code in eval.c:
>
> 9284 static void
> 9285 f_assert_fails(typval_T *argvars, typval_T *rettv UNUSED)
> 9286 {
> ...
> 9307 if (strstr((char *)vimvars[VV_ERRMSG].vv_str, error) == NULL)
>
> When crash happens, variable error is NULL at eval.c:9307.
> strstr(...) cannot be called with its 2nd argument being NULL.
>
> Attached patch fixes the crash, but please check whether
> it's the right way to fix it.
Thanks. I'll add a test. We don't need the json_decode() for that.
--
I started out with nothing, and I still have most of it.
-- Michael Davis -- "Tonight Show"
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
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.