Dominique Pelle wrote: > I can reproduce the following Valgrind error with Vim-7.3.237: [...] > > Steps to reproduce: > > - install the vcscommand plugin: > http://www.vim.org/scripts/script.php?script_id=90 > > - run: > $ vim -c VCSVimDiff > > Running VCSVimDiff on an unnamed buffer does not make much sense > but it should not cause vim to access invalid memory. > > Code in misc2.c: > > 3219 /* > 3220 * Return TRUE if "p" points to just after a path separator. > 3221 * Take care of multi-byte characters. > 3222 * "b" must point to the start of the file name > 3223 */ > 3224 int > 3225 after_pathsep(b, p) > 3226 char_u *b; > 3227 char_u *p; > 3228 { > 3229 return vim_ispathsep(p[-1]) > 3230 && (!has_mbyte || (*mb_head_off)(b, > p - 1) == 0); > 3231 } > > When error happens, b and p are identical, they point to the beginning > of an empty string. So p[-1] at misc2.c:3229 is an invalid read of 1 byte > and return value of after_pathsep() is then undefined. > > Attached patch fixes it.
Thanks, I'll include it soon. -- "Marriage is when a man and woman become as one; the trouble starts when they try to decide which one" /// Bram Moolenaar -- b...@moolenaar.net -- 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