From 1cac70953d3c012453ea85b1308a8b1f94359c26 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 22 Oct 2019 21:54:31 +0200 Subject: patch 8.1.2200: crash when memory allocation fails Problem: Crash when memory allocation fails. Solution: Check for NULL curwin and curbuf. (Christian Brabandt, closes #4839) --- src/getchar.c | 12 ++++++++++-- src/version.c | 2 ++ 2 files changed, 12 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 diff --git a/src/version.c b/src/version.c index f6e0b76e6..60a690dec 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2200, /**/ 2199, /**/ -- cgit v1.2.1