aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
authorJurica Bradaric <jbradaric@gmail.com>2016-02-02 18:34:04 +0100
committerJurica Bradaric <jbradaric@gmail.com>2016-02-02 18:34:31 +0100
commitcdc7250cd8ca948d15c158789f621a71d5c7b35d (patch)
treef7353d517621cffe9dd0de985ba461ff64542313 /src/nvim/ex_docmd.c
parentffd143be824ca96db1777c903b10696f06326a01 (diff)
downloadrneovim-cdc7250cd8ca948d15c158789f621a71d5c7b35d.tar.gz
rneovim-cdc7250cd8ca948d15c158789f621a71d5c7b35d.tar.bz2
rneovim-cdc7250cd8ca948d15c158789f621a71d5c7b35d.zip
vim-patch:7.4.800
Problem: Using freed memory when triggering CmdUndefined autocommands. Solution: Set pointer to NULL. (Dominique Pelle) https://github.com/vim/vim/commit/829aef1eb48b17445b1f0a801948c1b826f507f8
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 1ae440c757..755e1b9f64 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -1702,9 +1702,9 @@ static char_u * do_one_cmd(char_u **cmdlinep,
p = vim_strnsave(ea.cmd, p - ea.cmd);
int ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL);
xfree(p);
- if (ret && !aborting()) {
- p = find_command(&ea, NULL);
- }
+ // If the autocommands did something and didn't cause an error, try
+ // finding the command again.
+ p = (ret && !aborting()) ? find_command(&ea, NULL) : NULL;
}
if (p == NULL) {