diff options
| author | Magnus Hagander <magnus@hagander.net> | 2011-06-29 19:35:11 +0200 |
|---|---|---|
| committer | Magnus Hagander <magnus@hagander.net> | 2011-06-29 19:37:21 +0200 |
| commit | cbfd82aad252fd86b560a7b7c3d87260a34a595e (patch) | |
| tree | 507d8793c06c24811f2d86e0726685eb4331146d | |
| parent | 5cd81b8df0a9f3e4cb407e815b9a789138fd0356 (diff) | |
Protect pg_stat_reset_shared() against NULL input
Per bug #6082, reported by Steve Haslam
| -rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 14 |
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(); } |
