Fix new memory leaks in libpq
My oversight in commit
Per coverity.
@@ -1299,10 +1299,6 @@ PQsendQueryInternal(PGconn *conn, const char *query, bool newQuery)
if (!PQsendQueryStart(conn, newQuery))
return 0;
- entry = pqAllocCmdQueueEntry(conn);
- if (entry == NULL)
- return 0; /* error msg already set */
-
/* check the argument */
if (!query)
{
@@ -1311,6 +1307,10 @@ PQsendQueryInternal(PGconn *conn, const char *query, bool newQuery)
return 0;
}
+ entry = pqAllocCmdQueueEntry(conn);
+ if (entry == NULL)
+ return 0; /* error msg already set */
+
/* Send the query message(s) */
if (conn->pipelineStatus == PQ_PIPELINE_OFF)
{
@@ -1320,6 +1320,7 @@ PQsendQueryInternal(PGconn *conn, const char *query, bool newQuery)
pqPutMsgEnd(conn) < 0)
{
/* error message should be set up already */
+ pqRecycleCmdQueueEntry(conn, entry);
return 0;
}
