summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2011-06-29 19:35:11 +0200
committerMagnus Hagander <magnus@hagander.net>2011-06-29 19:37:21 +0200
commitcbfd82aad252fd86b560a7b7c3d87260a34a595e (patch)
tree507d8793c06c24811f2d86e0726685eb4331146d
parent5cd81b8df0a9f3e4cb407e815b9a789138fd0356 (diff)
Protect pg_stat_reset_shared() against NULL input
Per bug #6082, reported by Steve Haslam
-rw-r--r--src/backend/utils/adt/pgstatfuncs.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 8b13c8adf04..52f75d27350 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1116,9 +1116,17 @@ pg_stat_reset(PG_FUNCTION_ARGS)
Datum
pg_stat_reset_shared(PG_FUNCTION_ARGS)
{
- char *target = text_to_cstring(PG_GETARG_TEXT_PP(0));
-
- pgstat_reset_shared_counters(target);
+ if (PG_ARGISNULL(0))
+ /*
+ * Same error message as in pgstat_reset_shared_counters(),
+ * to keep translations the same.
+ */
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("unrecognized reset target: \"%s\"", "null"),
+ errhint("Target must be \"bgwriter\".")));
+
+ pgstat_reset_shared_counters(text_to_cstring(PG_GETARG_TEXT_PP(0)));
PG_RETURN_VOID();
}