Must free the pgParameterStatus chain in freePGconn(). My fault,

well spotted by Neil Conway.
This commit is contained in:
Tom Lane 2003-10-18 05:02:06 +00:00
parent 0a4048646b
commit f2f7107024
1 changed files with 12 additions and 1 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.262 2003/10/02 19:52:44 tgl Exp $
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.263 2003/10/18 05:02:06 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -2003,8 +2003,11 @@ makeEmptyPGconn(void)
static void
freePGconn(PGconn *conn)
{
pgParameterStatus *pstatus;
if (!conn)
return;
pqClearAsyncResult(conn); /* deallocate result and curTuple */
if (conn->sock >= 0)
{
@ -2037,6 +2040,14 @@ freePGconn(PGconn *conn)
if (conn->notifyList)
DLFreeList(conn->notifyList);
freeaddrinfo_all(conn->addrlist_family, conn->addrlist);
pstatus = conn->pstatus;
while (pstatus != NULL)
{
pgParameterStatus *prev = pstatus;
pstatus = pstatus->next;
free(prev);
}
if (conn->lobjfuncs)
free(conn->lobjfuncs);
if (conn->inBuffer)