postgres.git / summary / log / commit / refs

commit    80cfd8aef645295aceafd2aa98912c64edd06394
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Mon Jul 06 00:32:28 2026 +0000

    amcheck: Fix memory leak with gin_index_check()
    
    "prev_tuple" was overwritten with a new tuple coming from
    CopyIndexTuple() on each loop, leaking memory for every tuple processed
    on entry tree pages.  The function uses a dedicated memory context, but
    this could leave unused large areas of memory while processing a large
    GIN index, the larger the worse.
    
    Oversight in 14ffaece0fb5.
    
    Author: Kirill Reshke <reshkekirill@gmail.com>
    Reviewed-by: Ewan Young <kdbase.hack@gmail.com>
    Discussion: https://postgr.es/m/CALdSSPjTS6TYe5=5NfMUBYZyQu5cn=ABL6K5_OZjzGWqnwXeBw@mail.gmail.com
    Backpatch-through: 18


contrib/amcheck/verify_gin.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/amcheck/verify_gin.c b/contrib/amcheck/verify_gin.c index abfad07d5e4..fa06689ed5b 100644 --- a/contrib/amcheck/verify_gin.c +++ b/contrib/amcheck/verify_gin.c @@ -637,6 +637,9 @@ gin_check_parent_keys_consistency(Relation rel, pfree(ipd); } + if (prev_tuple) + pfree(prev_tuple); + prev_tuple = CopyIndexTuple(idxtuple); prev_attnum = current_attnum; } [parent: 56e892a49439]