Re: Dubious coding in nbtinsert.c

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Dubious coding in nbtinsert.c
Date: 2021-04-08 19:46:15
Message-ID: CAH2-WznUoeGxxHOdhPpqE+-UpZzw-am7qRE9y7qCpAFQ0JM2nw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Apr 8, 2021 at 12:19 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Buildfarm member curculio, which doesn't usually produce
> uninitialized-variable warnings, is showing one here:
>
> nbtinsert.c: In function '_bt_doinsert':
> nbtinsert.c:411: warning: 'curitemid' may be used uninitialized in this function
> nbtinsert.c:411: note: 'curitemid' was declared here
>
> I can see its point: curitemid is set only if !inposting.
> While the first two uses of the value are clearly reached
> only if !inposting, it's FAR from clear that it's impossible
> to reach "ItemIdMarkDead(curitemid);" without a valid value.
> Could you clean that up?

I'll take care of it shortly.

You had a near-identical complaint about a compiler warning that led
to my commit d64f1cdf2f4 -- that one involved _bt_check_unique()'s
curitup, while this one is about curitemid. While I have no problem
silencing this compiler warning now, I don't see any reason to not
just do the same thing again. Which is to initialize the pointer to
NULL.

--
Peter Geoghegan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2021-04-08 20:05:02 Re: pg_amcheck contrib application
Previous Message Justin Pryzby 2021-04-08 19:38:44 Re: [HACKERS] Custom compression methods