Re: pread, pwrite, etc return ssize_t not int
От
Peter Eisentraut
Тема
Re: pread, pwrite, etc return ssize_t not int
Дата
Msg-id
fe9863ed-4a3f-48bc-865e-4a65ab6d3f3f@eisentraut.org
Ответ на
Re: pread, pwrite, etc return ssize_t not int (Thomas Munro)
Список
Дерево обсуждения
pread, pwrite, etc return ssize_t not int Tom Lane <tgl@sss.pgh.pa.us>
Re: pread, pwrite, etc return ssize_t not int Thomas Munro <thomas.munro@gmail.com>
Re: pread, pwrite, etc return ssize_t not int Thomas Munro <thomas.munro@gmail.com>
Re: pread, pwrite, etc return ssize_t not int Peter Eisentraut <peter@eisentraut.org>
Re: pread, pwrite, etc return ssize_t not int Thomas Munro <thomas.munro@gmail.com>
Re: pread, pwrite, etc return ssize_t not int Peter Eisentraut <peter@eisentraut.org>
On 27.02.24 12:21, Thomas Munro wrote: > Patches attached. > > PS Correction to my earlier statement about POSIX: the traditional K&R > interfaces were indeed in the original POSIX.1 1988 but it was the > 1990 edition (approximately coinciding with standard C) that adopted > void, size_t, const and invented ssize_t. 0001-Return-ssize_t-in-fd.c-I-O-functions.patch This patch looks correct to me. 0002-Fix-theoretical-overflow-in-Windows-pg_pread-pg_pwri.patch I have two comments on that: For the overflow of the input length (size_t -> DWORD), I don't think we actually need to do anything. The size argument would be truncated, but the callers would just repeat the calls with the remaining size, so in effect they will read the data in chunks of rest + N * DWORD_MAX. The patch just changes this to chunks of N * 1GB + rest. The other issue, the possible overflow of size_t -> ssize_t is not specific to Windows. We could install some protection against that on some other layer, but it's unclear how widespread that issue is or what the appropriate fix is. POSIX says that passing in a size larger than SSIZE_MAX has implementation-defined effect. The FreeBSD man page says that this will result in an EINVAL error. So if we here truncate instead of error, we'd introduce a divergence.
В списке pgsql-hackers по дате отправления
От: Tomas Vondra
Дата: