postgres.git / summary / log / commit / refs
commit d94d37f8c0c77cf1b9c5ae924bb6cfc12f4bc692
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Sat Nov 07 01:52:15 2020 +0000
First released in: 14.0, 12.5, 13.1
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
src/backend/catalog/partition.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c
index 239ac017fa6..4dfac39adfe 100644
--- a/src/backend/catalog/partition.c
+++ b/src/backend/catalog/partition.c
@@ -170,13 +170,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;
}
[parent: 6a7b55f3716f]