Mercurial > vim
changeset 4005:65ef7c96d65f v7.3.757
updated for version 7.3.757
Problem: Issue 96: May access freed memory when a put command triggers
autocommands. (Dominique Pelle)
Solution: Call u_save() before getting y_array.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 12 Dec 2012 16:11:36 +0100 |
parents | 74a6e96270ba |
children | 5da9ab575840 |
files | src/ops.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ops.c +++ b/src/ops.c @@ -3351,6 +3351,12 @@ do_put(regname, dir, count, flags) return; } +#ifdef FEAT_AUTOCMD + /* Autocommands may be executed when saving lines for undo, which may make + * y_array invalid. Start undo now to avoid that. */ + u_save(curwin->w_cursor.lnum, curwin->w_cursor.lnum + 1); +#endif + if (insert_string != NULL) { y_type = MCHAR;