In PQsendQueryStart(), avoid leaking any left-over async result.
authorTom Lane
Mon, 10 Oct 2016 14:35:58 +0000 (10:35 -0400)
committerTom Lane
Mon, 10 Oct 2016 14:35:58 +0000 (10:35 -0400)
Ordinarily there would not be an async result sitting around at this
point, but it appears that in corner cases there can be.  Considering
all the work we're about to launch, it's hardly going to cost anything
noticeable to check.

It's been like this forever, so back-patch to all supported branches.

Report: 

src/interfaces/libpq/fe-exec.c

index 7429e9bfbeb3eb6568dbf0a98f833fe67537edf1..185fe2b77d820b39024ad3a20afc70a2e7312595 100644 (file)
@@ -1383,8 +1383,7 @@ PQsendQueryStart(PGconn *conn)
    }
 
    /* initialize async result-accumulation state */
-   conn->result = NULL;
-   conn->next_result = NULL;
+   pqClearAsyncResult(conn);
 
    /* reset single-row processing mode */
    conn->singleRowMode = false;