Mercurial > vim
diff src/ops.c @ 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 | 063765c3cebb |
children | 3fd805ca2a6a |
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;