aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2020-11-06 22:52:15 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2020-11-06 22:52:15 -0300
commit8ad6a0c1bb1c5a041cadfed713ef6bcabd0955ab (patch)
tree88a4c855d56c225cb6ddca9568eb6e77aab92e60 /src
parent8149e9f9a0d684dce883d9e5a9f7380afbdbd7d6 (diff)
downloadpostgresql-8ad6a0c1bb1c5a041cadfed713ef6bcabd0955ab.tar.gz
postgresql-8ad6a0c1bb1c5a041cadfed713ef6bcabd0955ab.zip
Plug memory leak in index_get_partition
The list of indexes was being leaked when asked for an index that doesn't have an index partition in the table partition. Not a common case admittedly --and in most cases where it occurs, caller throws an error anyway-- but worth fixing for cleanliness and in case any third-party code is calling this function. While at it, remove use of lfirst_oid() to obtain a value we already have. Author: Justin Pryzby <pryzby@telsasoft.com> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/20201105203606.GF22691@telsasoft.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/partition.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c
index e96620e4018..c41fba7be3b 100644
--- a/src/backend/catalog/partition.c
+++ b/src/backend/catalog/partition.c
@@ -171,13 +171,14 @@ index_get_partition(Relation partition, Oid indexId)
ReleaseSysCache(tup);
if (!ispartition)
continue;
- if (get_partition_parent(lfirst_oid(l)) == indexId)
+ if (get_partition_parent(partIdx) == indexId)
{
list_free(idxlist);
return partIdx;
}
}
+ list_free(idxlist);
return InvalidOid;
}