patch 9.0.0128: Coverity complains about possible double free
Problem: Coverity complains about possible double free.
Solution: Clear the pointer to avoid warnings.
diff --git a/src/charset.c b/src/charset.c
index a8173c1..2b65747 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -912,16 +912,13 @@
char_u *line,
char_u *ptr)
{
+ CLEAR_POINTER(cts);
cts->cts_win = wp;
cts->cts_lnum = lnum;
cts->cts_vcol = col;
cts->cts_line = line;
cts->cts_ptr = ptr;
#ifdef FEAT_PROP_POPUP
- cts->cts_text_prop_count = 0;
- cts->cts_has_prop_with_text = FALSE;
- cts->cts_cur_text_width = 0;
- cts->cts_with_trailing = 0;
if (lnum > 0)
{
char_u *prop_start;
@@ -951,7 +948,7 @@
if (!cts->cts_has_prop_with_text)
{
// won't use the text properties, free them
- vim_free(cts->cts_text_props);
+ VIM_CLEAR(cts->cts_text_props);
cts->cts_text_prop_count = 0;
}
}
@@ -969,8 +966,8 @@
#ifdef FEAT_PROP_POPUP
if (cts->cts_text_prop_count > 0)
{
- vim_free(cts->cts_text_props);
- cts->cts_text_prop_count = 0; // avoid double free
+ VIM_CLEAR(cts->cts_text_props);
+ cts->cts_text_prop_count = 0;
}
#endif
}