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]