From 1f12abbc7df007970071de42e568a25ca4a72442 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 7 Apr 2004 18:52:26 +0000 Subject: [PATCH] Push superuser check farther down in the if() statements to fix startup crash with debug in log_statement patch. --- src/backend/utils/misc/guc.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index adbbda25d4..5f12a37409 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -10,7 +10,7 @@ * Written by Peter Eisentraut . * * 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))); return false; } - if (record->context == PGC_USERLIMIT && - IsUnderPostmaster && !superuser()) + if (record->context == PGC_USERLIMIT) { if (newval < conf->reset_val) { /* Limit non-superuser changes */ - if (source > PGC_S_UNPRIVILEGED) + if (source > PGC_S_UNPRIVILEGED && !superuser()) { ereport(elevel, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -2750,7 +2749,8 @@ set_config_option(const char *name, const char *value, { /* Allow change if admin should override */ if (source < PGC_S_UNPRIVILEGED && - record->source > PGC_S_UNPRIVILEGED) + record->source > PGC_S_UNPRIVILEGED && + !superuser()) changeVal = changeValOrig; } } @@ -2830,8 +2830,7 @@ set_config_option(const char *name, const char *value, newval, name, conf->min, conf->max))); return false; } - if (record->context == PGC_USERLIMIT && - IsUnderPostmaster && !superuser()) + if (record->context == PGC_USERLIMIT) { /* handle log_min_duration_statement, -1=disable */ 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 */ { /* Limit non-superuser changes */ - if (source > PGC_S_UNPRIVILEGED) + if (source > PGC_S_UNPRIVILEGED && !superuser()) { ereport(elevel, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -2855,7 +2854,8 @@ set_config_option(const char *name, const char *value, (newval != -1 && *conf->variable == -1)) /* turn on */ { if (source < PGC_S_UNPRIVILEGED && - record->source > PGC_S_UNPRIVILEGED) + record->source > PGC_S_UNPRIVILEGED && + !superuser()) changeVal = changeValOrig; } } @@ -2935,12 +2935,11 @@ set_config_option(const char *name, const char *value, newval, name, conf->min, conf->max))); return false; } - if (record->context == PGC_USERLIMIT && - IsUnderPostmaster && !superuser()) + if (record->context == PGC_USERLIMIT) /* No REAL PGC_USERLIMIT */ { /* Limit non-superuser changes */ - if (source > PGC_S_UNPRIVILEGED) + if (source > PGC_S_UNPRIVILEGED && !superuser()) { ereport(elevel, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -2951,7 +2950,8 @@ set_config_option(const char *name, const char *value, } /* Allow change if admin should override */ if (source < PGC_S_UNPRIVILEGED && - record->source > PGC_S_UNPRIVILEGED) + record->source > PGC_S_UNPRIVILEGED && + !superuser()) changeVal = false; } } @@ -3023,8 +3023,7 @@ set_config_option(const char *name, const char *value, return false; } - if (record->context == PGC_USERLIMIT && - IsUnderPostmaster && !superuser()) + if (record->context == PGC_USERLIMIT) { int var_value, reset_value, new_value; 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) { /* Limit non-superuser changes */ - if (source > PGC_S_UNPRIVILEGED) + if (source > PGC_S_UNPRIVILEGED && !superuser()) { ereport(elevel, (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), @@ -3060,7 +3059,8 @@ set_config_option(const char *name, const char *value, if (new_value < var_value) { if (source < PGC_S_UNPRIVILEGED && - record->source > PGC_S_UNPRIVILEGED) + record->source > PGC_S_UNPRIVILEGED && + !superuser()) changeVal = changeValOrig; } } -- 2.11.0