changeset 6128:3aa37ad2c4ed v7.4.402

updated for version 7.4.402 Problem: Test 72 crashes under certain conditions. (Kazunobu Kuriyama) Solution: Clear the whole bufinfo_T early.
author Bram Moolenaar <bram@vim.org>
date Tue, 12 Aug 2014 20:14:33 +0200
parents e280391e57f2
children 6c3ed76a6e89
files src/undo.c src/version.c
diffstat 2 files changed, 5 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/undo.c
+++ b/src/undo.c
@@ -929,7 +929,7 @@ undo_write(bi, ptr, len)
 undo_flush(bi)
     bufinfo_T	*bi;
 {
-    if (bi->bi_used > 0)
+    if (bi->bi_buffer != NULL && bi->bi_used > 0)
     {
 	crypt_encode_inplace(bi->bi_state, bi->bi_buffer, bi->bi_used);
 	if (fwrite(bi->bi_buffer, bi->bi_used, (size_t)1, bi->bi_fp) != 1)
@@ -1573,10 +1573,7 @@ u_write_undo(name, forceit, buf, hash)
 #endif
     bufinfo_T	bi;
 
-#ifdef FEAT_CRYPT
-    bi.bi_state = NULL;
-    bi.bi_buffer = NULL;
-#endif
+    vim_memset(&bi, 0, sizeof(bi));
 
     if (name == NULL)
     {
@@ -1861,6 +1858,7 @@ u_read_undo(name, hash, orig_name)
 #endif
     bufinfo_T	bi;
 
+    vim_memset(&bi, 0, sizeof(bi));
     if (name == NULL)
     {
 	file_name = u_get_undo_file_name(curbuf->b_ffname, TRUE);
@@ -1905,10 +1903,6 @@ u_read_undo(name, hash, orig_name)
     }
     bi.bi_buf = curbuf;
     bi.bi_fp = fp;
-#ifdef FEAT_CRYPT
-    bi.bi_state = NULL;
-    bi.bi_buffer = NULL;
-#endif
 
     /*
      * Read the undo file header.
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    402,
+/**/
     401,
 /**/
     400,