postgres.git / summary / log / commit / refs
commit 4ccac92d08f22ef0f8df29ea6bd9d5e77bf1d246
Author: Fujii Masao <fujii@postgresql.org>
Date: Fri Jul 04 10:48:38 2014 +0000
Fix double-free bug of WAL streaming buffer in pg_receivexlog.
This bug was introduced while refactoring in commit 74cbe96.
src/bin/pg_basebackup/receivelog.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c
index 4aa35da2fce..97a078526a3 100644
--- a/src/bin/pg_basebackup/receivelog.c
+++ b/src/bin/pg_basebackup/receivelog.c
@@ -1079,12 +1079,11 @@ CopyStreamPoll(PGconn *conn, long timeout_ms)
static int
CopyStreamReceive(PGconn *conn, long timeout, char **buffer)
{
- static char *copybuf = NULL;
+ char *copybuf = NULL;
int rawlen;
- if (copybuf != NULL)
- PQfreemem(copybuf);
- copybuf = NULL;
+ if (*buffer != NULL)
+ PQfreemem(*buffer);
*buffer = NULL;
/* Try to receive a CopyData message */
[parent: 74cbe966fe2d]