diff options
author | Thomas Munro <tmunro@postgresql.org> | 2023-08-17 15:45:13 +1200 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2023-08-17 15:54:04 +1200 |
commit | 6337e994e89797d60b68ac6786c6a322ac00a382 (patch) | |
tree | f19a176a05b97e3810778c54c2fa9cc305a67221 | |
parent | 11f4935490eb8597fcc0e3e71c2caf90e6154943 (diff) | |
download | postgresql-6337e994e89797d60b68ac6786c6a322ac00a382.tar.gz postgresql-6337e994e89797d60b68ac6786c6a322ac00a382.zip |
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
-rw-r--r-- | src/backend/storage/smgr/smgr.c | 1 |
1 files changed, 1 insertions, 0 deletions
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; } /* |