summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier2023-11-20 00:14:53 +0000
committerMichael Paquier2023-11-20 00:14:53 +0000
commit3650e7a3933166b40f7f9043bd91f45d3467c74d (patch)
tree3f6fe6968c6678b0126d00ed4d509ac8ab368703
parent28f84f72fbafe3bef675d3a176eb53177f4a9433 (diff)
Prevent overflow for block number in buffile.cHEADmaster
As coded, the start block calculated by BufFileAppend() would overflow once more than 16k files are used with a default block size. This issue existed before b1e5c9fa9ac4, but there's no reason not to be clean about it. Per report from Coverity, with a fix suggested by Tom Lane.
-rw-r--r--src/backend/storage/file/buffile.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c
index 2ca3783233..73e9aca9d2 100644
--- a/src/backend/storage/file/buffile.c
+++ b/src/backend/storage/file/buffile.c
@@ -904,7 +904,7 @@ BufFileSize(BufFile *file)
int64
BufFileAppend(BufFile *target, BufFile *source)
{
- int64 startBlock = target->numFiles * BUFFILE_SEG_SIZE;
+ int64 startBlock = (int64) target->numFiles * BUFFILE_SEG_SIZE;
int newNumFiles = target->numFiles + source->numFiles;
int i;