aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--src/nvim/ex_cmds2.c7
-rw-r--r--src/nvim/version.c1
2 files changed, 2 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);
}
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 27dbf89762..a1346308be 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -69,6 +69,7 @@ static char *features[] = {
// clang-format off
static int included_patches[] = {
+ 1832,
1809,
1808,
1806,