From fb1861f78b6224c6e2f546239ad5b2097c97c9f0 Mon Sep 17 00:00:00 2001 From: Sami Imseih Date: Fri, 3 Jul 2026 10:31:09 -0500 Subject: [PATCH v2 3/3] Add Asserts for required callbacks before invocation Assert that reset_all_cb and init_shmem_cb are not NULL before calling them, matching the existing pattern used for snapshot_cb. This provides clearer diagnostics in assert-enabled builds compared to a raw NULL pointer dereference. --- src/backend/utils/activity/pgstat.c | 4 ++++ src/backend/utils/activity/pgstat_shmem.c | 1 + 2 files changed, 5 insertions(+) diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index 2d8b92c4051..deacf167100 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -908,7 +908,10 @@ pgstat_reset_of_kind(PgStat_Kind kind) TimestampTz ts = GetCurrentTimestamp(); if (kind_info->fixed_amount) + { + Assert(kind_info->reset_all_cb != NULL); kind_info->reset_all_cb(ts); + } else pgstat_reset_entries_of_kind(kind, ts); } @@ -2155,6 +2158,7 @@ pgstat_reset_after_failure(void) if (!kind_info || !kind_info->fixed_amount) continue; + Assert(kind_info->reset_all_cb != NULL); kind_info->reset_all_cb(ts); } diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 5ea3f1973f9..d00dbb90f16 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -247,6 +247,7 @@ StatsShmemInit(void *arg) ptr = ctl->custom_data[idx]; } + Assert(kind_info->init_shmem_cb != NULL); kind_info->init_shmem_cb(ptr); } } -- 2.50.1 (Apple Git-155)