diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-22 21:54:31 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-22 21:54:31 +0200 |
commit | 1cac70953d3c012453ea85b1308a8b1f94359c26 (patch) | |
tree | f950c729773df35a13d07a2b1edc7637c45a699c /src/getchar.c | |
parent | a720be78d7978b3b853ff6c8af0d1721d6225378 (diff) | |
download | vim-git-1cac70953d3c012453ea85b1308a8b1f94359c26.tar.gz |
patch 8.1.2200: crash when memory allocation failsv8.1.2200
Problem: Crash when memory allocation fails.
Solution: Check for NULL curwin and curbuf. (Christian Brabandt,
closes #4839)
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c index f9bfab829..07383da2c 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2059,8 +2059,8 @@ f_getcharmod(typval_T *argvars UNUSED, typval_T *rettv) void parse_queued_messages(void) { - int old_curwin_id = curwin->w_id; - int old_curbuf_fnum = curbuf->b_fnum; + int old_curwin_id; + int old_curbuf_fnum; int i; int save_may_garbage_collect = may_garbage_collect; static int entered = 0; @@ -2071,6 +2071,14 @@ parse_queued_messages(void) if (updating_screen) return; + // If memory allocation fails during startup we'll exit but curbuf or + // curwin could be NULL. + if (curbuf == NULL || curwin == NULL) + return; + + old_curbuf_fnum = curbuf->b_fnum; + old_curwin_id = curwin->w_id; + ++entered; // may_garbage_collect is set in main_loop() to do garbage collection when |