Commit 6794a9f9 authored by Stephen Frost's avatar Stephen Frost

Avoid minor leak in parallel pg_dump

During parallel pg_dump, a worker process closing the connection caused
a minor memory leak (particularly minor as we are likely about to exit
anyway).  Instead, free the memory in this case prior to returning NULL
to indicate connection closed.

Spotting by the Coverity scanner.

Back patch to 9.3 where this was introduced.
parent d150ff57
...@@ -1288,7 +1288,7 @@ readMessageFromPipe(int fd) ...@@ -1288,7 +1288,7 @@ readMessageFromPipe(int fd)
/* worker has closed the connection or another error happened */ /* worker has closed the connection or another error happened */
if (ret <= 0) if (ret <= 0)
return NULL; break;
Assert(ret == 1); Assert(ret == 1);
...@@ -1303,6 +1303,14 @@ readMessageFromPipe(int fd) ...@@ -1303,6 +1303,14 @@ readMessageFromPipe(int fd)
msg = (char *) realloc(msg, bufsize); msg = (char *) realloc(msg, bufsize);
} }
} }
/*
* Worker has closed the connection, make sure to clean up before return
* since we are not returning msg (but did allocate it).
*/
free(msg);
return NULL;
} }
#ifdef WIN32 #ifdef WIN32
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment