From a932824dfe068f563e9abb9264f6e071f23e67ae Mon Sep 17 00:00:00 2001 From: Amit Kapila Date: Wed, 21 Sep 2022 10:20:37 +0530 Subject: [PATCH] Pass Size as a 2nd argument for snprintf() in tablesync.c. Previously the following snprintf() wrappers: * ReplicationSlotNameForTablesync() * ReplicationOriginNameForTablesync() ... used int as a second argument of snprintf() while the actual type of it is size_t. Although it doesn't fail at present better replace it with Size for consistency with the rest of the system. Author: Aleksander Alekseev Reviewed-By: Peter Smith Discussion: https://postgr.es/m/CAHut%2BPsa8hhfSE6ozUK-ih7GkQziAVAf4f3bqiXEj2nQiu-43g%40mail.gmail.com --- src/backend/replication/logical/tablesync.c | 4 ++-- src/include/replication/slot.h | 2 +- src/include/replication/worker_internal.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index 831d42016c1..8eff69c7dec 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -1187,7 +1187,7 @@ copy_table(Relation rel) */ void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, - char *syncslotname, int szslot) + char *syncslotname, Size szslot) { snprintf(syncslotname, szslot, "pg_%u_sync_%u_" UINT64_FORMAT, suboid, relid, GetSystemIdentifier()); @@ -1200,7 +1200,7 @@ ReplicationSlotNameForTablesync(Oid suboid, Oid relid, */ void ReplicationOriginNameForTablesync(Oid suboid, Oid relid, - char *originname, int szorgname) + char *originname, Size szorgname) { snprintf(originname, szorgname, "pg_%u_%u", suboid, relid); } diff --git a/src/include/replication/slot.h b/src/include/replication/slot.h index 81e31f002a3..8d5e764aef5 100644 --- a/src/include/replication/slot.h +++ b/src/include/replication/slot.h @@ -218,7 +218,7 @@ extern void ReplicationSlotsDropDBSlots(Oid dboid); extern bool InvalidateObsoleteReplicationSlots(XLogSegNo oldestSegno); extern ReplicationSlot *SearchNamedReplicationSlot(const char *name, bool need_lock); extern int ReplicationSlotIndex(ReplicationSlot *slot); -extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, int szslot); +extern void ReplicationSlotNameForTablesync(Oid suboid, Oid relid, char *syncslotname, Size szslot); extern void ReplicationSlotDropAtPubNode(WalReceiverConn *wrconn, char *slotname, bool missing_ok); extern void StartupReplicationSlots(void); diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h index 901845abc2c..f82bc518c32 100644 --- a/src/include/replication/worker_internal.h +++ b/src/include/replication/worker_internal.h @@ -93,7 +93,7 @@ extern void logicalrep_worker_wakeup_ptr(LogicalRepWorker *worker); extern int logicalrep_sync_worker_count(Oid subid); extern void ReplicationOriginNameForTablesync(Oid suboid, Oid relid, - char *originname, int szorgname); + char *originname, Size szorgname); extern char *LogicalRepSyncTableStart(XLogRecPtr *origin_startpos); extern bool AllTablesyncsReady(void); -- 2.39.5