Re: innocuous: pgbench does FD_ISSET on invalid socket

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: innocuous: pgbench does FD_ISSET on invalid socket
Date: 2016-02-15 06:20:11
Message-ID: CAB7nPqTTZoiuVYGNonLVnZysStUSOfhKeO9FTrQbKWJ36UCdOA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Feb 13, 2016 at 6:25 AM, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> wrote:
> I noticed that pgbench calls FD_ISSET on a socket returned by
> PQsocket() without first checking that it's not invalid. I don't think
> there's a real problem here because the socket was already checked a few
> lines above, but I think applying the same coding pattern to both places
> is cleaner.
>
> Any objections to changing it like this? I'd probably backpatch to 9.5,
> but no further (even though this pattern actually appears all the way
> back.)

Not really, +1 for consistency here, and this makes the code clearer.

Different issues in the same area:
1) In vacuumdb.c, init_slot() does not check for the return value of PQsocket():
slot->sock = PQsocket(conn);
2) In isolationtester.c, try_complete_step() should do the same.
3) In pg_recvlogical.c for StreamLogicalLog() I am spotting the same problem.
I guess those ones should be fixed as well, no?
--
Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Rushabh Lathia 2016-02-15 06:20:20 Re: Optimization for updating foreign tables in Postgres FDW
Previous Message Craig Ringer 2016-02-15 06:15:29 Re: Refectoring of receivelog.c