mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 01:08:20 +00:00
Fix warnings: edit.c: ins_compl_get_exp(): Np dereference (2): FP.
Problems : Dereference of null pointer @ 3615. Dereference of null pointer @ 3764. Diagnostic : False positives. Rationale : `ins_buf` is local static, so maintains value between calls. This function will be called first when `compl_started` is false, and in that case it initializes `ins_buf`. After that, it can be called multiple times with `compl_started` true, where `ins_buf` will be updated but not to null. So, when arriving to both points, `ins_buf` should never be null. Resolution : Assert `ins_buf` at both points.
This commit is contained in:
@@ -3613,6 +3613,7 @@ static int ins_compl_get_exp(pos_T *ini)
|
|||||||
* If 'infercase' is set, don't use 'smartcase' here
|
* If 'infercase' is set, don't use 'smartcase' here
|
||||||
*/
|
*/
|
||||||
save_p_scs = p_scs;
|
save_p_scs = p_scs;
|
||||||
|
assert(ins_buf);
|
||||||
if (ins_buf->b_p_inf)
|
if (ins_buf->b_p_inf)
|
||||||
p_scs = FALSE;
|
p_scs = FALSE;
|
||||||
|
|
||||||
@@ -3761,8 +3762,10 @@ static int ins_compl_get_exp(pos_T *ini)
|
|||||||
compl_started = TRUE;
|
compl_started = TRUE;
|
||||||
} else {
|
} else {
|
||||||
/* Mark a buffer scanned when it has been scanned completely */
|
/* Mark a buffer scanned when it has been scanned completely */
|
||||||
if (type == 0 || type == CTRL_X_PATH_PATTERNS)
|
if (type == 0 || type == CTRL_X_PATH_PATTERNS) {
|
||||||
|
assert(ins_buf);
|
||||||
ins_buf->b_scanned = TRUE;
|
ins_buf->b_scanned = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
compl_started = FALSE;
|
compl_started = FALSE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user