Thread

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove useless check for negative result of ip_addrsize().

  1. BUG #18914: REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4, 16}) is always false

    PG Bug reporting form <noreply@postgresql.org> — 2025-05-07T08:48:44Z

    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++)
    
    
  2. Re: BUG #18914: REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4, 16}) is always false

    David Rowley <dgrowleyml@gmail.com> — 2025-05-07T10:34:16Z

    On Wed, 7 May 2025 at 21:28, PG Bug reporting form
    <noreply@postgresql.org> wrote:
    > @@ -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);
    
    
    This has already been fixed in master by [1]. Since there's no actual
    misbehaviour, there was no backpatch.
    
    David
    
    [1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=f27eb0325b7b2cff3b880fa669913693849521dc
    
    
    
    
  3. Re: BUG #18914: REDUNDANT_COMPARISON.ALWAYS_FALSE Redundant comparison '0' > 'nb' (0 > {4, 16}) is always false

    Daniel Gustafsson <daniel@yesql.se> — 2025-05-07T10:35:30Z

    > On 7 May 2025, at 10:48, PG Bug reporting form <noreply@postgresql.org> wrote:
    > 
    > 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.
    
    This was already addressed in commit f27eb0325b7b2c. 
    
    If you are going to run a static analyzer you should make sure to run it
    against HEAD as small things like this one aren't backported.
    
    --
    Daniel Gustafsson