logirep_cache_leak.patch
text/x-diff
Filename: logirep_cache_leak.patch
Type: text/x-diff
Part: 2
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/catalog/pg_publication.c | 1 | 1 |
| src/include/catalog/pg_publication.h | 1 | 1 |
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;