[PATCH 1/2] ui-stats: free without condition
john at keeping.me.uk
Mon Oct 12 22:29:29 CEST 2015
On Mon, Oct 12, 2015 at 08:29:20PM +0200, Christian Hesse wrote:
> Christian Hesse <list at eworm.de> on Mon, 2015/10/12 11:14:
> > John Keeping <john at keeping.me.uk> on Mon, 2015/10/12 10:10:
> > > On Mon, Oct 12, 2015 at 10:59:34AM +0200, Christian Hesse wrote:
> > > > From: Christian Hesse <mail at eworm.de>
> > > >
> > > > xstrdup() returns allocated memory or NULL. It's safe to call free()
> > > > without condition.
> > > >
> > > > Coverity-Id 13839 is kind of false posivtive, but this should fix it
> > > > nevertheless.
> > > >
> > > > Coverity-Id: 13839
> > > > Signed-off-by: Christian Hesse <mail at eworm.de>
> > > > ---
> > > > ui-stats.c | 6 ++----
> > > > 1 file changed, 2 insertions(+), 4 deletions(-)
> > >
> > > This is wrong - we don't have strdup_strings set in the string_list so
> > > it takes ownership of the pointer. The test on item->util is used as a
> > > proxy testing if the entry is newly added to the list (in which case it
> > > has taken ownership of the string) or not (in which case we must free
> > > the string).
> > My assumption was that string_list_insert() handles this itself and
> > duplicates the string. Then please ignore the patches! :D
> Does it make sense to set
> authors.strdup_strings = 1;
> items.strdup_strings = 1;
> and let string_list_insert() make the work?
Personally, I'd say it's not worth the churn. I don't think Coverity is
complaining about this anyway is it? The only problem I see in
ui-stats.c is that we use item->util as a counter not a pointer. I'm
not sure if casting it to uintptr_t will be enough to persuade Coverity
that we know what we're doing.
More information about the CGit