aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-11-13 23:30:43 +0100
committerEliseo Martínez <eliseomarmol@gmail.com>2014-11-15 12:49:18 +0100
commitfcd5a8643c2022f20f5225614fd5dc39775af486 (patch)
tree015354175b6bb9a920da18188a6f86254acb8ce8 /src/nvim/ex_docmd.c
parentce9c4e9a6f253b1540a5367f834f6dd31e6db0c8 (diff)
downloadrneovim-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.c3
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';
}