Re: Memory leak in receivelog.c when receiving stream

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Memory leak in receivelog.c when receiving stream
Дата
Msg-id 54B4DB2A.2000104@vmware.com
обсуждение исходный текст
Ответ на Memory leak in receivelog.c when receiving stream  (Michael Paquier <michael.paquier@gmail.com>)
Ответы Re: Memory leak in receivelog.c when receiving stream  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
On 01/13/2015 10:18 AM, Michael Paquier wrote:
> receivelog.c is leaking memory in CopyStreamReceive when receiving COPY data.
> The issue has been spotted by coverity. The patch attached fixes the
> problem, and contains as well improved comments.
>
> *** a/src/bin/pg_basebackup/receivelog.c
> --- b/src/bin/pg_basebackup/receivelog.c
> ***************
> *** 1035,1046 **** CopyStreamReceive(PGconn *conn, long timeout, char **buffer)
>           if (rawlen == 0)
>               return 0;
>       }
> !     if (rawlen == -1)            /* end-of-streaming or error */
>           return -2;
>       if (rawlen == -2)
>       {
>           fprintf(stderr, _("%s: could not read COPY data: %s"),
>                   progname, PQerrorMessage(conn));
>           return -1;
>       }
>
> --- 1035,1056 ----
>           if (rawlen == 0)
>               return 0;
>       }
> !
> !     /* end-of-streaming or error */
> !     if (rawlen == -1)
> !     {
> !         if (copybuf != NULL)
> !             PQfreemem(copybuf);
>           return -2;
> +     }
> +
> +     /* failure when reading copy stream */
>       if (rawlen == -2)
>       {
>           fprintf(stderr, _("%s: could not read COPY data: %s"),
>                   progname, PQerrorMessage(conn));
> +         if (copybuf != NULL)
> +             PQfreemem(copybuf);
>           return -1;
>       }

This looks like a false positive to me. PQgetCopyData() will only return 
a buffer if its return value is > 0

- Heikki




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Unused variables in hstore_to_jsonb
Следующее
От: Vladimir Borodin
Дата:
Сообщение: Re: Check that streaming replica received all data after master shutdown