Skip to content
Snippets Groups Projects
Commit f7332e88 authored by Tom Lane's avatar Tom Lane
Browse files

Remove duplicate PQclear(res) operations leading to double free() and

subsequent core dump.  It looks like at one time DBLINK_RES_ERROR_AS_NOTICE
didn't include a PQclear, but now it does and so these other ones are
duplicate.
parent 1ad68782
No related branches found
No related tags found
No related merge requests found
......@@ -345,7 +345,6 @@ dblink_open(PG_FUNCTION_ARGS)
else
{
DBLINK_RES_ERROR_AS_NOTICE("sql error");
PQclear(res);
PG_RETURN_TEXT_P(GET_TEXT("ERROR"));
}
}
......@@ -419,7 +418,6 @@ dblink_close(PG_FUNCTION_ARGS)
else
{
DBLINK_RES_ERROR_AS_NOTICE("sql error");
PQclear(res);
PG_RETURN_TEXT_P(GET_TEXT("ERROR"));
}
}
......@@ -531,8 +529,6 @@ dblink_fetch(PG_FUNCTION_ARGS)
DBLINK_RES_ERROR("sql error");
else
{
if (res)
PQclear(res);
DBLINK_RES_ERROR_AS_NOTICE("sql error");
SRF_RETURN_DONE(funcctx);
}
......@@ -720,11 +716,9 @@ dblink_record(PG_FUNCTION_ARGS)
DBLINK_RES_ERROR("sql error");
else
{
if (res)
PQclear(res);
DBLINK_RES_ERROR_AS_NOTICE("sql error");
if (freeconn)
PQfinish(conn);
DBLINK_RES_ERROR_AS_NOTICE("sql error");
SRF_RETURN_DONE(funcctx);
}
}
......@@ -938,13 +932,15 @@ dblink_exec(PG_FUNCTION_ARGS)
* result tuple
*/
sql_cmd_status = GET_TEXT(PQcmdStatus(res));
PQclear(res);
}
else
{
PQclear(res);
ereport(ERROR,
(errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED),
errmsg("statement returning results not allowed")));
PQclear(res);
}
/* if needed, close the connection to the database and cleanup */
if (freeconn)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment