aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2015-04-03 01:34:27 -0400
committerJustin M. Keyes <justinkz@gmail.com>2015-04-12 01:17:45 -0400
commit1e767ad96fca7d64b2edcdd76337c7f2545475ef (patch)
tree6168d9aa93dbe58a0256b9a627b91b8cb3cb7448 /src
parent813690bb68a59a72b6a9dfb0d7dab8aa21ebd114 (diff)
downloadrneovim-1e767ad96fca7d64b2edcdd76337c7f2545475ef.tar.gz
rneovim-1e767ad96fca7d64b2edcdd76337c7f2545475ef.tar.bz2
rneovim-1e767ad96fca7d64b2edcdd76337c7f2545475ef.zip
fix: segfault in ml_recover() if swap file not found
- To reproduce: ":recover non_existent_swapfile" - Regression: 00f18e2e09af35494d0b94ae76a9dbc3e0319d89
Diffstat (limited to 'src')
-rw-r--r--src/nvim/memline.c6
1 files changed, 4 insertions, 2 deletions
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 {