diff options
author | Daniel Gustafsson <dgustafsson@postgresql.org> | 2024-12-11 12:48:22 +0100 |
---|---|---|
committer | Daniel Gustafsson <dgustafsson@postgresql.org> | 2024-12-11 12:48:22 +0100 |
commit | 0e033f5b6de569e712d5f94b77878b8ffacf6397 (patch) | |
tree | bc8ac0d5ed6da39d579f5c078636221b31c02841 /src | |
parent | 9df2a4b9316fae76477187bb2b64197169f5c346 (diff) | |
download | postgresql-0e033f5b6de569e712d5f94b77878b8ffacf6397.tar.gz postgresql-0e033f5b6de569e712d5f94b77878b8ffacf6397.zip |
Fix a memory leak in dumping functions with TRANSFORMs
The gneration of the dump clause for functions with TRANSFORM
calls would leak the memory for holding the result of the Oid
array parsing. Fix by freeing.
While in there, switch to using pg_malloc instead of palloc in
order to be consistent with the rest of the file.
Author: Oleg Tselebrovskiy <o.tselebrovskiy@postgrespro.ru>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://postgr.es/m/baf1ae4511288e5b421f41e79a3df1a0@postgrespro.ru
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ec0cdf4ed74..89276524ae0 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -12531,7 +12531,7 @@ dumpFunc(Archive *fout, const FuncInfo *finfo) if (*protrftypes) { - Oid *typeids = palloc(FUNC_MAX_ARGS * sizeof(Oid)); + Oid *typeids = pg_malloc(FUNC_MAX_ARGS * sizeof(Oid)); int i; appendPQExpBufferStr(q, " TRANSFORM "); @@ -12543,6 +12543,8 @@ dumpFunc(Archive *fout, const FuncInfo *finfo) appendPQExpBuffer(q, "FOR TYPE %s", getFormattedTypeName(fout, typeids[i], zeroAsNone)); } + + free(typeids); } if (prokind[0] == PROKIND_WINDOW) |