diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-08-12 20:14:33 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-08-12 20:14:33 +0200 |
commit | 5a669b94814a5ca1ff69f76f18c75a90f4404ca6 (patch) | |
tree | 7b270af53503fdd4d7452b596272a421dafef050 /src/undo.c | |
parent | 07cf382e223b8b88f4b763d104e3e487c96d32d2 (diff) | |
download | vim-git-5a669b94814a5ca1ff69f76f18c75a90f4404ca6.tar.gz |
updated for version 7.4.402v7.4.402
Problem: Test 72 crashes under certain conditions. (Kazunobu Kuriyama)
Solution: Clear the whole bufinfo_T early.
Diffstat (limited to 'src/undo.c')
-rw-r--r-- | src/undo.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/undo.c b/src/undo.c index 1661c8074..8f50f0f0a 100644 --- 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. |