diff options
author | André Twupack <atwupack@mailbox.org> | 2014-09-21 00:29:45 +0200 |
---|---|---|
committer | André Twupack <atwupack@mailbox.org> | 2014-09-21 10:42:27 +0200 |
commit | 2b937fe00d8b0b308cce87aee9f70699f8474c1e (patch) | |
tree | 7b3c7cf3597222905f907fe99233120df79ef504 /src/nvim/window.c | |
parent | 0ed9f3ec8338783466b0a6ab2661d9a061a436fa (diff) | |
download | rneovim-2b937fe00d8b0b308cce87aee9f70699f8474c1e.tar.gz rneovim-2b937fe00d8b0b308cce87aee9f70699f8474c1e.tar.bz2 rneovim-2b937fe00d8b0b308cce87aee9f70699f8474c1e.zip |
vim-patch:7.4.320
Problem: Possible crash when an BufLeave autocommand deletes the buffer.
Solution: Check for the window pointer being valid. Postpone freeing the
window until autocommands are done. (Yasuhiro Matsumoto)
https://code.google.com/p/vim/source/detail?r=v7-4-320
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index f5d8edc751..f41a5d8872 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -3679,7 +3679,12 @@ win_free ( if (wp != aucmd_win) win_remove(wp, tp); - free(wp); + if (autocmd_busy) { + wp->w_next = au_pending_free_win; + au_pending_free_win = wp; + } else { + free(wp); + } unblock_autocmds(); } |