In PQsendQueryStart(), avoid leaking any left-over async result.
authorTom Lane <[email protected]>
Mon, 10 Oct 2016 14:35:58 +0000 (10:35 -0400)
committerTom Lane <[email protected]>
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: <CAD-Qf1eLUtBOTPXyFQGW-4eEsop31tVVdZPu4kL9pbQ6tJPO8g@mail.gmail.com>

src/interfaces/libpq/fe-exec.c

index 68a848ab5bdd1e07116dfd710a93f9611f38f550..7418b152dc7d1cbbcfd1301cfdf9486ad2e8dea6 100644 (file)
@@ -1240,8 +1240,7 @@ PQsendQueryStart(PGconn *conn)
    }
 
    /* initialize async result-accumulation state */
-   conn->result = NULL;
-   conn->curTuple = NULL;
+   pqClearAsyncResult(conn);
 
    /* ready to send command message */
    return true;