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.
diff --git a/src/ops.c b/src/ops.c
index f08e576..9b669b3 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3351,6 +3351,12 @@
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;