# HG changeset patch # User Bram Moolenaar # Date 1571774405 -7200 # Node ID 6208e5c2eee758db609dd10cfc5c09107003c746 # Parent a100cc3da45a1c3f659516648c7d4cf8372af2d2 patch 8.1.2200: crash when memory allocation fails Commit: https://github.com/vim/vim/commit/1cac70953d3c012453ea85b1308a8b1f94359c26 Author: Bram Moolenaar Date: Tue Oct 22 21:54:31 2019 +0200 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) diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -2059,8 +2059,8 @@ f_getcharmod(typval_T *argvars UNUSED, t 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 --- 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 */ /**/ + 2200, +/**/ 2199, /**/ 2198,