From: Tom Lane Date: Sun, 20 Feb 2022 20:02:41 +0000 (-0500) Subject: Reset conn->errorReported when PQrequestCancel sets errorMessage. X-Git-Tag: REL_15_BETA1~658 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=83a7637e2c5be27a0788b920501dde284b3fca33;p=postgresql.git Reset conn->errorReported when PQrequestCancel sets errorMessage. Oversight in commit 618c16707. This is mainly neatnik-ism, since if PQrequestCancel is used per its API contract, we should perform pqClearConnErrorState before reaching any place that would consult errorReported. But still, it seems like a bad idea to potentially leave errorReported pointing past errorMessage.len. --- diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 2a3d68b4d14..1c5a2b43e99 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -4687,6 +4687,7 @@ PQrequestCancel(PGconn *conn) "PQrequestCancel() -- connection is not open\n", conn->errorMessage.maxlen); conn->errorMessage.len = strlen(conn->errorMessage.data); + conn->errorReported = 0; return false; } @@ -4706,7 +4707,10 @@ PQrequestCancel(PGconn *conn) } if (!r) + { conn->errorMessage.len = strlen(conn->errorMessage.data); + conn->errorReported = 0; + } return r; }