mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
Avoid a seg fault when exiting after OOM error
I'm debugging OOM behavior using http://www.nongnu.org/failmalloc/ on Linux. gdb environment: ``` set env LD_PRELOAD=libfailmalloc.so set env FAILMALLOC_SPACE=0xF00000 ``` SEGV was happening like this: ``` Starting program: /home/felipe/code/neovim/build/bin/nvim [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Vim: Error: Out of memory. Program received signal SIGSEGV, Segmentation fault. 0x00000000004d3719 in getout (exitval=1) at /home/felipe/code/neovim/src/main.c:836 836 if (*p_viminfo != NUL) (gdb) ``` After the fix it works as expected: ``` (gdb) set environment LD_PRELOAD=libfailmalloc.so (gdb) set environment FAILMALLOC_SPACE=0xF00000 (gdb) r Starting program: /home/felipe/code/neovim/build/bin/nvim [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Vim: Error: Out of memory. Vim: Finished. [Inferior 1 (process 21505) exited with code 01] (gdb) ```
This commit is contained in:
parent
de1575f3ea
commit
5afc1161ca
@ -834,7 +834,7 @@ void getout(int exitval)
|
||||
apply_autocmds(EVENT_VIMLEAVEPRE, NULL, NULL, FALSE, curbuf);
|
||||
}
|
||||
|
||||
if (*p_viminfo != NUL)
|
||||
if (p_viminfo && *p_viminfo != NUL)
|
||||
/* Write out the registers, history, marks etc, to the viminfo file */
|
||||
write_viminfo(NULL, FALSE);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user