mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-11 11:56:16 +01:00
gfileutils: Use 'write' with 'count' <= max value of its return type
Limit `count` so that `write` can properly report the number of written bytes. Limits: - POSIX: `SSIZE_MAX` - Windows: `INT_MAX` Fixes: #2883
This commit is contained in:
parent
5d0db7f0b8
commit
e9e4d52de8
@ -1143,8 +1143,13 @@ write_to_file (const gchar *contents,
|
||||
{
|
||||
gssize s;
|
||||
|
||||
s = write (fd, contents, MIN (length, G_MAXSIZE));
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
/* 'write' on windows uses int types, so limit count to G_MAXINT */
|
||||
s = write (fd, contents, MIN (length, (gsize) G_MAXINT));
|
||||
#else
|
||||
/* Limit count to G_MAXSSIZE to fit into the return value. */
|
||||
s = write (fd, contents, MIN (length, (gsize) G_MAXSSIZE));
|
||||
#endif
|
||||
if (s < 0)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
|
Loading…
Reference in New Issue
Block a user