Thread: pgsql: Fix inconsequential FILE pointer leakage

pgsql: Fix inconsequential FILE pointer leakage

From
Alvaro Herrera
Date:
Fix inconsequential FILE pointer leakage

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=83c759ea0ea8ffe07c45e6fd2c489cebce2caad6

Modified Files
--------------
src/port/exec.c |    1 +
1 files changed, 1 insertions(+), 0 deletions(-)


Re: pgsql: Fix inconsequential FILE pointer leakage

From
Tom Lane
Date:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:

--- a/src/port/exec.c
+++ b/src/port/exec.c
@@ -357,6 +357,7 @@ pipe_read_line(char *cmd, char *line, int maxsize)

    if (fgets(line, maxsize, pgver) == NULL)
    {
+       pclose(pgver);      /* no error checking */
        perror("fgets failure");
        return NULL;
    }

Doesn't this risk having pclose trash the errno setting that perror is
going to print?  If you must do this, please do it in the other order.

            regards, tom lane

Re: pgsql: Fix inconsequential FILE pointer leakage

From
Alvaro Herrera
Date:
Excerpts from Tom Lane's message of jue dic 16 17:00:43 -0300 2010:

> --- a/src/port/exec.c
> +++ b/src/port/exec.c
> @@ -357,6 +357,7 @@ pipe_read_line(char *cmd, char *line, int maxsize)
>
>     if (fgets(line, maxsize, pgver) == NULL)
>     {
> +       pclose(pgver);      /* no error checking */
>         perror("fgets failure");
>         return NULL;
>     }
>
> Doesn't this risk having pclose trash the errno setting that perror is
> going to print?  If you must do this, please do it in the other order.

Gah, yes, sorry.  Fixed.

--
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support