From: Tom Lane Date: Sat, 18 Oct 2003 05:02:06 +0000 (+0000) Subject: Must free the pgParameterStatus chain in freePGconn(). My fault, X-Git-Tag: REL7_4_BETA5~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f2f71070244958108a9321f47524d3a40945c682;p=postgresql Must free the pgParameterStatus chain in freePGconn(). My fault, well spotted by Neil Conway. --- diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index cd235a1276..9dde3043c7 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -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)