mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 10:55:40 +00:00
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.
This commit is contained in:
@@ -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';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user