mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08:00
Push superuser check farther down in the if() statements to fix startup
crash with debug in log_statement patch.
This commit is contained in:
parent
0bb21d391c
commit
1f12abbc7d
@ -10,7 +10,7 @@
|
|||||||
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
* Written by Peter Eisentraut <peter_e@gmx.net>.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.198 2004/04/07 05:05:50 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.199 2004/04/07 18:52:26 momjian Exp $
|
||||||
*
|
*
|
||||||
*--------------------------------------------------------------------
|
*--------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -2730,13 +2730,12 @@ set_config_option(const char *name, const char *value,
|
|||||||
name)));
|
name)));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (record->context == PGC_USERLIMIT &&
|
if (record->context == PGC_USERLIMIT)
|
||||||
IsUnderPostmaster && !superuser())
|
|
||||||
{
|
{
|
||||||
if (newval < conf->reset_val)
|
if (newval < conf->reset_val)
|
||||||
{
|
{
|
||||||
/* Limit non-superuser changes */
|
/* Limit non-superuser changes */
|
||||||
if (source > PGC_S_UNPRIVILEGED)
|
if (source > PGC_S_UNPRIVILEGED && !superuser())
|
||||||
{
|
{
|
||||||
ereport(elevel,
|
ereport(elevel,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
@ -2750,7 +2749,8 @@ set_config_option(const char *name, const char *value,
|
|||||||
{
|
{
|
||||||
/* Allow change if admin should override */
|
/* Allow change if admin should override */
|
||||||
if (source < PGC_S_UNPRIVILEGED &&
|
if (source < PGC_S_UNPRIVILEGED &&
|
||||||
record->source > PGC_S_UNPRIVILEGED)
|
record->source > PGC_S_UNPRIVILEGED &&
|
||||||
|
!superuser())
|
||||||
changeVal = changeValOrig;
|
changeVal = changeValOrig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2830,8 +2830,7 @@ set_config_option(const char *name, const char *value,
|
|||||||
newval, name, conf->min, conf->max)));
|
newval, name, conf->min, conf->max)));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (record->context == PGC_USERLIMIT &&
|
if (record->context == PGC_USERLIMIT)
|
||||||
IsUnderPostmaster && !superuser())
|
|
||||||
{
|
{
|
||||||
/* handle log_min_duration_statement, -1=disable */
|
/* handle log_min_duration_statement, -1=disable */
|
||||||
if ((newval != -1 && conf->reset_val != -1 &&
|
if ((newval != -1 && conf->reset_val != -1 &&
|
||||||
@ -2839,7 +2838,7 @@ set_config_option(const char *name, const char *value,
|
|||||||
(newval == -1 && conf->reset_val != -1)) /* turn off */
|
(newval == -1 && conf->reset_val != -1)) /* turn off */
|
||||||
{
|
{
|
||||||
/* Limit non-superuser changes */
|
/* Limit non-superuser changes */
|
||||||
if (source > PGC_S_UNPRIVILEGED)
|
if (source > PGC_S_UNPRIVILEGED && !superuser())
|
||||||
{
|
{
|
||||||
ereport(elevel,
|
ereport(elevel,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
@ -2855,7 +2854,8 @@ set_config_option(const char *name, const char *value,
|
|||||||
(newval != -1 && *conf->variable == -1)) /* turn on */
|
(newval != -1 && *conf->variable == -1)) /* turn on */
|
||||||
{
|
{
|
||||||
if (source < PGC_S_UNPRIVILEGED &&
|
if (source < PGC_S_UNPRIVILEGED &&
|
||||||
record->source > PGC_S_UNPRIVILEGED)
|
record->source > PGC_S_UNPRIVILEGED &&
|
||||||
|
!superuser())
|
||||||
changeVal = changeValOrig;
|
changeVal = changeValOrig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2935,12 +2935,11 @@ set_config_option(const char *name, const char *value,
|
|||||||
newval, name, conf->min, conf->max)));
|
newval, name, conf->min, conf->max)));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (record->context == PGC_USERLIMIT &&
|
if (record->context == PGC_USERLIMIT)
|
||||||
IsUnderPostmaster && !superuser())
|
|
||||||
/* No REAL PGC_USERLIMIT */
|
/* No REAL PGC_USERLIMIT */
|
||||||
{
|
{
|
||||||
/* Limit non-superuser changes */
|
/* Limit non-superuser changes */
|
||||||
if (source > PGC_S_UNPRIVILEGED)
|
if (source > PGC_S_UNPRIVILEGED && !superuser())
|
||||||
{
|
{
|
||||||
ereport(elevel,
|
ereport(elevel,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
@ -2951,7 +2950,8 @@ set_config_option(const char *name, const char *value,
|
|||||||
}
|
}
|
||||||
/* Allow change if admin should override */
|
/* Allow change if admin should override */
|
||||||
if (source < PGC_S_UNPRIVILEGED &&
|
if (source < PGC_S_UNPRIVILEGED &&
|
||||||
record->source > PGC_S_UNPRIVILEGED)
|
record->source > PGC_S_UNPRIVILEGED &&
|
||||||
|
!superuser())
|
||||||
changeVal = false;
|
changeVal = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3023,8 +3023,7 @@ set_config_option(const char *name, const char *value,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (record->context == PGC_USERLIMIT &&
|
if (record->context == PGC_USERLIMIT)
|
||||||
IsUnderPostmaster && !superuser())
|
|
||||||
{
|
{
|
||||||
int var_value, reset_value, new_value;
|
int var_value, reset_value, new_value;
|
||||||
const char * (*var_hook) (int *var, const char *newval,
|
const char * (*var_hook) (int *var, const char *newval,
|
||||||
@ -3045,7 +3044,7 @@ set_config_option(const char *name, const char *value,
|
|||||||
if (new_value > reset_value)
|
if (new_value > reset_value)
|
||||||
{
|
{
|
||||||
/* Limit non-superuser changes */
|
/* Limit non-superuser changes */
|
||||||
if (source > PGC_S_UNPRIVILEGED)
|
if (source > PGC_S_UNPRIVILEGED && !superuser())
|
||||||
{
|
{
|
||||||
ereport(elevel,
|
ereport(elevel,
|
||||||
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
|
||||||
@ -3060,7 +3059,8 @@ set_config_option(const char *name, const char *value,
|
|||||||
if (new_value < var_value)
|
if (new_value < var_value)
|
||||||
{
|
{
|
||||||
if (source < PGC_S_UNPRIVILEGED &&
|
if (source < PGC_S_UNPRIVILEGED &&
|
||||||
record->source > PGC_S_UNPRIVILEGED)
|
record->source > PGC_S_UNPRIVILEGED &&
|
||||||
|
!superuser())
|
||||||
changeVal = changeValOrig;
|
changeVal = changeValOrig;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user