Mercurial > vim
diff src/ex_getln.c @ 2556:e065501c703a vim73
Fix illegal memory access when using expressions in the command line.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 13 Aug 2010 16:51:26 +0200 |
parents | e27def2ed69b |
children | 029ace8dff7d |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -2527,7 +2527,10 @@ realloc_cmdbuff(len) ccline.cmdbuff = p; /* keep the old one */ return FAIL; } - mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen + 1); + /* There isn't always a NUL after the command, but it may need to be + * there, thus copy up to the NUL and add a NUL. */ + mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen); + ccline.cmdbuff[ccline.cmdlen] = NUL; vim_free(p); if (ccline.xpc != NULL