Dominique Pelle wrote:

> Valgrind memory checker detects the following bug in vim-7.1.154:
> 
> ==6518== Source and destination overlap in strcpy(0x4F8E442, 0x4F8E443)
> ==6518==    at 0x40245D2: strcpy (mc_replace_strmem.c:106)
> ==6518==    by 0x80AF714: eval_vars (ex_docmd.c:9394)
> ==6518==    by 0x80A7B6A: expand_filename (ex_docmd.c:4247)
> ==6518==    by 0x80A4F4B: do_one_cmd (ex_docmd.c:2557)
> ==6518==    by 0x80A293A: do_cmdline (ex_docmd.c:1099)
> ==6518==    by 0x808B6DA: ex_execute (eval.c:18592)
> ==6518==    by 0x80A50EA: do_one_cmd (ex_docmd.c:2621)
> ==6518==    by 0x80A293A: do_cmdline (ex_docmd.c:1099)
> ==6518==    by 0x808F04A: call_user_func (eval.c:20289)
> ==6518==    by 0x807B7BE: call_func (eval.c:7599)
> ==6518==    by 0x807B3E9: get_func_tv (eval.c:7446)
> ==6518==    by 0x8077A76: eval7 (eval.c:4697)
> 
> Overlapping strings in strcpy(...) in ex_docmd.c:9394 has an
> undefined behavior (may work or not).
> 
> 9394      STRCPY(src - 1, src);           /* remove backslash */
> 
> I attach a patch for file ex_docmd.c with:
> 
> - trivial fix for above bug  (using mch_memmove() instead of STRCPY())
> - fixed a few typos in comments
> - fixed a typo in one translatable error message
> 
> I'm using vim-7.1.154, on Linux, built without optimizations (-O0)
> and configured with "./configure --with-features=huge".

Thanks for the fix!

-- 
I AM THANKFUL...
...for the mess to clean after a party because it means I have
been surrounded by friends.

 /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui