Mercurial > vim
changeset 29465:1ae3e2d691a0 v9.0.0074
patch 9.0.0074: Coverity warns for double free
Commit: https://github.com/vim/vim/commit/34a1f779791fd4137547fa72addeb147b7704604
Author: Bram Moolenaar <Bram@vim.org>
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 26 Jul 2022 12:30:05 +0200 |
parents | 3a229fb63f78 |
children | d5b1a7cece0a |
files | src/charset.c src/structs.h src/version.c |
diffstat | 3 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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 }
--- 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