mirror of
https://github.com/neovim/neovim.git
synced 2025-09-29 14:38:32 +00:00
vim-patch:7.4.1832
Problem: Memory leak in debug commands.
Solution: Free memory before overwriting the pointer. (hint by Justin Keyes)
dc303bce10
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
@@ -69,6 +69,7 @@ static char *features[] = {
|
||||
|
||||
// clang-format off
|
||||
static int included_patches[] = {
|
||||
1832,
|
||||
1809,
|
||||
1808,
|
||||
1806,
|
||||
|
Reference in New Issue
Block a user