# HG changeset patch # User Bram Moolenaar # Date 1658831405 -7200 # Node ID 1ae3e2d691a0e3782ca40c32a88a27be21bdbcc3 # Parent 3a229fb63f781babbdf713aa160460fc971e3244 patch 9.0.0074: Coverity warns for double free Commit: https://github.com/vim/vim/commit/34a1f779791fd4137547fa72addeb147b7704604 Author: Bram Moolenaar Date: Tue Jul 26 11:20:48 2022 +0100 patch 9.0.0074: Coverity warns for double free Problem: Coverity warns for double free. Solution: Reset cts_text_prop_count when freeing cts_text_props. diff --git a/src/charset.c b/src/charset.c --- a/src/charset.c +++ b/src/charset.c @@ -964,7 +964,10 @@ clear_chartabsize_arg(chartabsize_T *cts { #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 + } #endif } diff --git a/src/structs.h b/src/structs.h --- a/src/structs.h +++ b/src/structs.h @@ -4570,9 +4570,10 @@ typedef struct { char_u *cts_line; // start of the line char_u *cts_ptr; // current position in line #ifdef FEAT_PROP_POPUP - int cts_text_prop_count; // number of text props - textprop_T *cts_text_props; // text props (allocated) or NULL - char cts_has_prop_with_text; // TRUE if if a property inserts text + int cts_text_prop_count; // number of text props; when zero + // cts_text_props is not used + textprop_T *cts_text_props; // text props (allocated) + char cts_has_prop_with_text; // TRUE if if a property inserts text int cts_cur_text_width; // width of current inserted text #endif int cts_vcol; // virtual column at current position diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 74, +/**/ 73, /**/ 72,