From 7517e6a673644b1ebfc1322438a2d82f92d15d8f Mon Sep 17 00:00:00 2001 From: Jakub Wartak Date: Wed, 27 Sep 2023 08:26:22 +0200 Subject: [PATCH] Adjust pgstat_track_activity_query_size to be of size_t instead of int. This prevents integer overflow for MemoryContextAllocHuge() in pg_stat_get_activity() SQL function when it is being called on system with high values of max_connections and high pgstat_track_activity_query_size (e.g. 1MB). postgres=# select * from pg_stat_get_activity(NULL); ERROR: invalid memory alloc request size 18446744072590721024 --- src/backend/utils/activity/backend_status.c | 2 +- src/include/utils/backend_status.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/activity/backend_status.c b/src/backend/utils/activity/backend_status.c index 722c5acf38..a08a38c78c 100644 --- a/src/backend/utils/activity/backend_status.c +++ b/src/backend/utils/activity/backend_status.c @@ -43,7 +43,7 @@ * ---------- */ bool pgstat_track_activities = false; -int pgstat_track_activity_query_size = 1024; +size_t pgstat_track_activity_query_size = 1024; /* exposed so that backend_progress.c can access it */ diff --git a/src/include/utils/backend_status.h b/src/include/utils/backend_status.h index d51c840daf..a487aeddd7 100644 --- a/src/include/utils/backend_status.h +++ b/src/include/utils/backend_status.h @@ -286,7 +286,7 @@ typedef struct LocalPgBackendStatus * ---------- */ extern PGDLLIMPORT bool pgstat_track_activities; -extern PGDLLIMPORT int pgstat_track_activity_query_size; +extern PGDLLIMPORT size_t pgstat_track_activity_query_size; /* ---------- -- 2.30.2