aboutsummaryrefslogtreecommitdiff
path: root/src/port/win32pread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/port/win32pread.c')
-rw-r--r--src/port/win32pread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/port/win32pread.c b/src/port/win32pread.c
index e1a066fdbe4..2d022e6d378 100644
--- a/src/port/win32pread.c
+++ b/src/port/win32pread.c
@@ -30,6 +30,9 @@ pg_pread(int fd, void *buf, size_t size, off_t offset)
return -1;
}
+ /* Avoid overflowing DWORD. */
+ size = Min(size, 1024 * 1024 * 1024);
+
/* Note that this changes the file position, despite not using it. */
overlapped.Offset = offset;
if (!ReadFile(handle, buf, size, &result, &overlapped))