From: Bram Moolenaar Date: Wed, 12 Dec 2012 15:11:36 +0000 (+0100) Subject: updated for version 7.3.757 X-Git-Tag: v7.3.757 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=27356ad4f47eb87eb9889d4bd06eaecc7944763f;p=thirdparty%2Fvim.git 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 f08e576cfe..9b669b3317 100644 --- 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; diff --git a/src/version.c b/src/version.c index aec15bdd02..562bb043f5 100644 --- a/src/version.c +++ b/src/version.c @@ -725,6 +725,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 757, /**/ 756, /**/