aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_cmds2.c
diff options
context:
space:
mode:
authorJurica Bradaric <jbradaric@gmail.com>2016-05-17 20:56:05 +0200
committerJurica Bradaric <jbradaric@gmail.com>2016-05-17 21:00:31 +0200
commit91796f70edf7d6f89742c114d1825dae65eca7e1 (patch)
tree38add648a08ba7e638a3648772e601a230046b55 /src/nvim/ex_cmds2.c
parent12cfe7775f7330d64d77d12114db879bf8073797 (diff)
downloadrneovim-91796f70edf7d6f89742c114d1825dae65eca7e1.tar.gz
rneovim-91796f70edf7d6f89742c114d1825dae65eca7e1.tar.bz2
rneovim-91796f70edf7d6f89742c114d1825dae65eca7e1.zip
vim-patch:7.4.1832
Problem: Memory leak in debug commands. Solution: Free memory before overwriting the pointer. (hint by Justin Keyes) https://github.com/vim/vim/commit/dc303bce10c60a3314078ea168064552fadf01af
Diffstat (limited to 'src/nvim/ex_cmds2.c')
-rw-r--r--src/nvim/ex_cmds2.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 8b67abf453..5fe6209a0a 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -189,6 +189,7 @@ void do_debug(char_u *cmd)
ignore_script = TRUE;
}
+ xfree(cmdline);
cmdline = getcmdline_prompt('>', NULL, 0, EXPAND_NOTHING, NULL);
if (typeahead_saved) {
@@ -294,7 +295,6 @@ void do_debug(char_u *cmd)
break;
case CMD_BACKTRACE:
do_showbacktrace(cmd);
- xfree(cmdline); // free cmdline before next loop iteration
continue;
case CMD_FRAME:
if (*p == NUL) {
@@ -303,17 +303,14 @@ void do_debug(char_u *cmd)
p = skipwhite(p);
do_setdebugtracelevel(p);
}
- xfree(cmdline);
continue;
case CMD_UP:
debug_backtrace_level++;
do_checkbacktracelevel();
- xfree(cmdline);
continue;
case CMD_DOWN:
debug_backtrace_level--;
do_checkbacktracelevel();
- xfree(cmdline);
continue;
}
// Going out reset backtrace_level
@@ -327,8 +324,6 @@ void do_debug(char_u *cmd)
(void)do_cmdline(cmdline, getexline, NULL,
DOCMD_VERBOSE|DOCMD_EXCRESET);
debug_break_level = n;
-
- xfree(cmdline);
}
lines_left = (int)(Rows - 1);
}