v2-0002-Avoid-extra-pstrdup-in-Publication.patch
text/x-diff
Filename: v2-0002-Avoid-extra-pstrdup-in-Publication.patch
Type: text/x-diff
Part: 1
Patch
Format: format-patch
Series: patch v2-0002
Subject: Avoid extra pstrdup() in Publication
| File | + | − |
|---|---|---|
| src/backend/catalog/pg_publication.c | 1 | 1 |
| src/include/catalog/pg_publication.h | 1 | 1 |
From 22cb03ab8e0fe024f8c3bb36b1581a32eff04ebc Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Mon, 2 Dec 2024 10:36:52 +0900
Subject: [PATCH v2 2/2] Avoid extra pstrdup() in Publication
The structure is changed so as the publication name is included in a
single memory allocation, knowing that the publication name is limited
by NAMEDATALEN.
No backpatch is required, as this is an ABI breakage.
---
src/include/catalog/pg_publication.h | 2 +-
src/backend/catalog/pg_publication.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/include/catalog/pg_publication.h b/src/include/catalog/pg_publication.h
index 9a83a72d6b..809bd1f0a6 100644
--- a/src/include/catalog/pg_publication.h
+++ b/src/include/catalog/pg_publication.h
@@ -103,7 +103,7 @@ typedef struct PublicationDesc
typedef struct Publication
{
Oid oid;
- char *name;
+ char name[NAMEDATALEN];
bool alltables;
bool pubviaroot;
bool pubgencols;
diff --git a/src/backend/catalog/pg_publication.c b/src/backend/catalog/pg_publication.c
index 9bbb60463f..8f4e3b83f1 100644
--- a/src/backend/catalog/pg_publication.c
+++ b/src/backend/catalog/pg_publication.c
@@ -1061,7 +1061,7 @@ GetPublication(Oid pubid)
pub = (Publication *) palloc(sizeof(Publication));
pub->oid = pubid;
- pub->name = pstrdup(NameStr(pubform->pubname));
+ strlcpy(pub->name, NameStr(pubform->pubname), NAMEDATALEN);
pub->alltables = pubform->puballtables;
pub->pubactions.pubinsert = pubform->pubinsert;
pub->pubactions.pubupdate = pubform->pubupdate;
--
2.45.2