diff options
author | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-11-13 23:30:43 +0100 |
---|---|---|
committer | Eliseo Martínez <eliseomarmol@gmail.com> | 2014-11-15 12:49:18 +0100 |
commit | fcd5a8643c2022f20f5225614fd5dc39775af486 (patch) | |
tree | 015354175b6bb9a920da18188a6f86254acb8ce8 /src/nvim/ex_docmd.c | |
parent | ce9c4e9a6f253b1540a5367f834f6dd31e6db0c8 (diff) | |
download | rneovim-fcd5a8643c2022f20f5225614fd5dc39775af486.tar.gz rneovim-fcd5a8643c2022f20f5225614fd5dc39775af486.tar.bz2 rneovim-fcd5a8643c2022f20f5225614fd5dc39775af486.zip |
Fix warnings: syntax.c: get_id_list(): Double free: FP.
Problem : Double free @ 5213.
Diagnostic : False positive.
Rationale : Suggested error path contains two consecutive invocations
of `ends_excmd(*p)` having different results, which is not
possible. First invocation is before the while loop. Second
invocation is the while loop condition itsef.
Resolution : Refactor while loop into do-while loop. That removes the
impossible path from analysis, and, in addition, is a bit
more efficient.
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 134def0c2c..3e9b889253 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -31,6 +31,7 @@ #include "nvim/ex_getln.h" #include "nvim/fileio.h" #include "nvim/fold.h" +#include "nvim/func_attr.h" #include "nvim/getchar.h" #include "nvim/hardcopy.h" #include "nvim/if_cscope.h" @@ -4025,7 +4026,7 @@ static void ex_blast(exarg_T *eap) goto_buffer(eap, DOBUF_LAST, BACKWARD, 0); } -int ends_excmd(int c) +int ends_excmd(int c) FUNC_ATTR_CONST { return c == NUL || c == '|' || c == '"' || c == '\n'; } |