From 1e767ad96fca7d64b2edcdd76337c7f2545475ef Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 3 Apr 2015 01:34:27 -0400 Subject: fix: segfault in ml_recover() if swap file not found - To reproduce: ":recover non_existent_swapfile" - Regression: 00f18e2e09af35494d0b94ae76a9dbc3e0319d89 --- src/nvim/memline.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/memline.c b/src/nvim/memline.c index b3b53b768f..448f15cc07 100644 --- a/src/nvim/memline.c +++ b/src/nvim/memline.c @@ -1244,8 +1244,10 @@ theend: mf_put(mfp, hp, false, false); mf_close(mfp, false); /* will also free(mfp->mf_fname) */ } - free(buf->b_ml.ml_stack); - free(buf); + if (buf != NULL) { //may be NULL if swap file not found. + free(buf->b_ml.ml_stack); + free(buf); + } if (serious_error && called_from_main) ml_close(curbuf, TRUE); else { -- cgit