Skip to content

Commit cbfd82a

Browse files
committed
Protect pg_stat_reset_shared() against NULL input
Per bug #6082, reported by Steve Haslam
1 parent 5cd81b8 commit cbfd82a

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/backend/utils/adt/pgstatfuncs.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,9 +1116,17 @@ pg_stat_reset(PG_FUNCTION_ARGS)
11161116
Datum
11171117
pg_stat_reset_shared(PG_FUNCTION_ARGS)
11181118
{
1119-
char *target = text_to_cstring(PG_GETARG_TEXT_PP(0));
1120-
1121-
pgstat_reset_shared_counters(target);
1119+
if (PG_ARGISNULL(0))
1120+
/*
1121+
* Same error message as in pgstat_reset_shared_counters(),
1122+
* to keep translations the same.
1123+
*/
1124+
ereport(ERROR,
1125+
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
1126+
errmsg("unrecognized reset target: \"%s\"", "null"),
1127+
errhint("Target must be \"bgwriter\".")));
1128+
1129+
pgstat_reset_shared_counters(text_to_cstring(PG_GETARG_TEXT_PP(0)));
11221130

11231131
PG_RETURN_VOID();
11241132
}

0 commit comments

Comments
 (0)