From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: gorcom2012@gmail.com
Subject: BUG #18914: REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4, 16}) is always false
Date: Wed, 07 May 2025 08:48:44 +0000
Message-ID: <18914-6eac5aa27f44c628@postgresql.org> (raw)
The following bug has been logged on the website:
Bug reference: 18914
Logged by: Eugeny Goryachev
Email address: gorcom2012@gmail.com
PostgreSQL version: 17.4
Operating system: Ubuntu
Description:
REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4,
16}) is always false at network.c:282.
The function 'network_send()' in src/backend/utils/adt/network.c contains a
redundant comparison:
if (nb < 0)
nb = 0;
Since 'nb' is set via 'ip_addrsize(addr)', which returns either 4 or 16 (for
IPv4 and IPv6 addresses respectively), this condition can never be true. As
such, the check adds no runtime value and may trigger warnings from static
analyzers about unreachable code.
To address this, I've replaced the redundant check with an 'Assert(nb >= 0)'
to document the expected invariant while maintaining defensive programming
style.
This change retains safety by ensuring that unexpected negative values would
be caught during development (in debug builds), while eliminating the
unreachable code that confuses static analysis tools.
Patch:
diff --git a/src/backend/utils/adt/network.c
b/src/backend/utils/adt/network.c
index 640fc37dc83..3f83fbe85df 100644--- a/src/backend/utils/adt/network.c+++ b/src/backend/utils/adt/network.c@@ -279,8 +279,7 @@ network_send(inet *addr, bool is_cidr)
pq_sendbyte(&buf, ip_bits(addr));
pq_sendbyte(&buf, is_cidr);
nb = ip_addrsize(addr);
- if (nb < 0)- nb = 0;+ Assert(nb >= 0);
pq_sendbyte(&buf, nb);
addrptr = (char *) ip_addr(addr);
for (i = 0; i < nb; i++)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: noreply@postgresql.org, pgsql-bugs@lists.postgresql.org, gorcom2012@gmail.com
Subject: Re: BUG #18914: REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4, 16}) is always false
In-Reply-To: <18914-6eac5aa27f44c628@postgresql.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox