BUG #15802: Comparison of a function returning boolean value using relational (<, >, <= or >=) operator

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

BUG #15802: Comparison of a function returning boolean value using relational (<, >, <= or >=) operator

PG Bug reporting form
The following bug has been logged on the website:

Bug reference:      15802
Logged by:          David Binderman
Email address:      [hidden email]
PostgreSQL version: 11.3
Operating system:   Linux
Description:        

postgresql-11.3/src/interfaces/libpq/fe-misc.c:1060]: (style) Comparison of
a function returning boolean value using relational (<, >, <= or >=)
operator.

Source code is

       if (forRead && conn->ssl_in_use && pgtls_read_pending(conn) > 0)

but

./src/interfaces/libpq/libpq-int.h:extern bool pgtls_read_pending(PGconn
*conn);

Reply | Threaded
Open this post in threaded view
|

Re: BUG #15802: Comparison of a function returning boolean value using relational (<, >, <= or >=) operator

Tom Lane-2
PG Bug reporting form <[hidden email]> writes:
> postgresql-11.3/src/interfaces/libpq/fe-misc.c:1060]: (style) Comparison of
> a function returning boolean value using relational (<, >, <= or >=)
> operator.
> Source code is
>        if (forRead && conn->ssl_in_use && pgtls_read_pending(conn) > 0)
> but
> ./src/interfaces/libpq/libpq-int.h:extern bool pgtls_read_pending(PGconn
> *conn);

It looks like the "> 0" belongs inside pgtls_read_pending, since
SSL_pending is documented to return an integer count.  This is
probably harmless with C99-style bools, but if we were doing it
like that before PG v12, it could be a live bug in the back
branches.  I'll check.

Thanks for the report!

                        regards, tom lane