aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFujii Masao <fujii@postgresql.org>2014-07-04 19:48:38 +0900
committerFujii Masao <fujii@postgresql.org>2014-07-04 19:48:38 +0900
commit4ccac92d08f22ef0f8df29ea6bd9d5e77bf1d246 (patch)
treee6cf6eeda517d66d1c4024c6dd970c12f533ee08
parent74cbe966fe2d76de1d607d933c98c144dab58769 (diff)
downloadpostgresql-4ccac92d08f22ef0f8df29ea6bd9d5e77bf1d246.tar.gz
postgresql-4ccac92d08f22ef0f8df29ea6bd9d5e77bf1d246.zip
Fix double-free bug of WAL streaming buffer in pg_receivexlog.
This bug was introduced while refactoring in commit 74cbe96.
-rw-r--r--src/bin/pg_basebackup/receivelog.c7
1 files 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 */