Silence using uninitialized value

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Silence using uninitialized value
Date: 2025-04-15 11:53:43
Message-ID: CAEudQApZnTYftuM-opLARSFOQ2uivxcu894xH+KXj2t4H-eouw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi.

Per Coverity.

Coverity has new report about tablecmds.c and tablespace.c

tablecmds.c:
CID 1608920: (#1 of 1): Uninitialized scalar variable (UNINIT)
6. uninit_use_in_call: Using uninitialized value *repl_val when calling
heap_modify_tuple.

CID 1608899: (#1 of 1): Uninitialized scalar variable (UNINIT)
16. uninit_use_in_call: Using uninitialized value *repl_val when calling
heap_modify_tuple.

tablespace.c:
CID 1608898: (#1 of 1): Uninitialized scalar variable (UNINIT)
6. uninit_use_in_call: Using uninitialized value *repl_val when calling
heap_modify_tuple.

I don't think that is a bug.
But really the uninitialized value is read here:
(src/backend/access/common/heaptuple.c )

3. read_value: Reading value replValues[attoff].
1242 values[attoff] = replValues[attoff];
1243 isnull[attoff] = replIsnull[attoff];
1244 }

There a common pattern in the source code:

value = (Datum) 0;
null = true;

So I believe it is worth changing to the standard used.

patch attached.

best regards,
Ranier Vilela

Attachment Content-Type Size
fix_read_unitialized_variable_tablecmds.patch application/octet-stream 1.1 KB
fix-uninitialized-read-variable-tablespace.patch application/octet-stream 659 bytes

Browse pgsql-hackers by date

  From Date Subject
Next Message Srinath Reddy 2025-04-15 11:56:27 Re: [Proposal] Add \dAt [AMPTRN [TBLPTRN]] to list tables by Table Access Method in psql
Previous Message Ranier Vilela 2025-04-15 11:27:18 Re: Fix a resource leak (src/backend/utils/adt/rowtypes.c)