aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/misc/trace.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-05-22 17:47:54 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-05-22 17:47:54 +0000
commitcf1478982cbe5637f0e78f88a28bf5d8ecfb389f (patch)
tree712d801ce2b81e4c87f7b6e7f7ea9cab6c7f3168 /src/backend/utils/misc/trace.c
parente9edb3ef92363b53c576767cae60847f94fac0c6 (diff)
downloadpostgresql-cf1478982cbe5637f0e78f88a28bf5d8ecfb389f.tar.gz
postgresql-cf1478982cbe5637f0e78f88a28bf5d8ecfb389f.zip
Modify backend switch parsing to prevent 'insecure' switches
from being accepted when they are passed from client connection request. Get rid of a couple that no longer do anything (like -P).
Diffstat (limited to 'src/backend/utils/misc/trace.c')
-rw-r--r--src/backend/utils/misc/trace.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c
index 1f96065c9ef..871e1d436a0 100644
--- a/src/backend/utils/misc/trace.c
+++ b/src/backend/utils/misc/trace.c
@@ -257,9 +257,13 @@ set_option_flag(int flag, int value)
/*
* Parse an option string like "name,name+,name-,name=value".
* Single options are delimited by ',',space,tab,newline or cr.
+ *
+ * If 'secure' is false, the option string came from a remote client via
+ * connection "debug options" field --- do not obey any requests that
+ * might potentially be security loopholes.
*/
void
-parse_options(char *str)
+parse_options(char *str, bool secure)
{
char *s,
*name;
@@ -384,7 +388,7 @@ read_pg_options(SIGNAL_ARGS)
p--;
*p = '\0';
verbose = pg_options[TRACE_VERBOSE];
- parse_options(buffer);
+ parse_options(buffer, true);
verbose |= pg_options[TRACE_VERBOSE];
if (verbose || postgres_signal_arg == SIGHUP)
tprintf(TRACE_ALL, "read_pg_options: %s", buffer);