diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2015-04-03 01:34:27 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-04-12 01:17:45 -0400 |
commit | 1e767ad96fca7d64b2edcdd76337c7f2545475ef (patch) | |
tree | 6168d9aa93dbe58a0256b9a627b91b8cb3cb7448 /src | |
parent | 813690bb68a59a72b6a9dfb0d7dab8aa21ebd114 (diff) | |
download | rneovim-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.c | 6 |
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 { |