postgres.git / summary / log / commit / refs

commit    81e36d3e0df8d3d7a3daa2e2216f96df23ffc96a
Author:   Thomas Munro <tmunro@postgresql.org>
Date:     Thu Aug 17 03:45:13 2023 +0000
First released in: 17.0, 15.5, 16.0

    Invalidate smgr_targblock in smgrrelease().
    
    In rare circumstances involving relfilenode reuse, it might have been
    possible for smgr_targblock to finish up pointing past the end.
    
    Oversight in b74e94dc.  Back-patch to 15.
    
    Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
    Discussion: https://postgr.es/m/CA%2BhUKGJ8NTvqLHz6dqbQnt2c8XCki4r2QvXjBQcXpVwxTY_pvA%40mail.gmail.com


src/backend/storage/smgr/smgr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index f76c4605dbb..5d0f3d515c3 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -296,6 +296,7 @@ smgrrelease(SMgrRelation reln) smgrsw[reln->smgr_which].smgr_close(reln, forknum); reln->smgr_cached_nblocks[forknum] = InvalidBlockNumber; } + reln->smgr_targblock = InvalidBlockNumber; } /* [parent: d3c25ca1bf59]