Commit 2bc84b68 authored by Tom Lane's avatar Tom Lane

Add defense in assign_session_authorization() against trying to do

catalog lookups when not in a transaction.  This prevents bizarre
failures if someone tries to set a value for session_authorization in
postgresql.conf.  Per report from Fernando Nasser.
parent dd484de0
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.77 2003/05/22 17:13:08 tgl Exp $ * $Header: /cvsroot/pgsql/src/backend/commands/variable.c,v 1.78 2003/06/06 16:25:35 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -750,6 +750,16 @@ assign_session_authorization(const char *value, bool doit, bool interactive) ...@@ -750,6 +750,16 @@ assign_session_authorization(const char *value, bool doit, bool interactive)
/* not a saved ID, so look it up */ /* not a saved ID, so look it up */
HeapTuple userTup; HeapTuple userTup;
if (! IsTransactionState())
{
/*
* Can't do catalog lookups, so fail. The upshot of this is
* that session_authorization cannot be set in postgresql.conf,
* which seems like a good thing anyway.
*/
return NULL;
}
userTup = SearchSysCache(SHADOWNAME, userTup = SearchSysCache(SHADOWNAME,
PointerGetDatum(value), PointerGetDatum(value),
0, 0, 0); 0, 0, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment