6c642a8786
Due to a bug in the Darwin kernel, write(2) calls have a maximum size of INT_MAX bytes. Introduce a new compat function, clipped_write(), that only writes at most INT_MAX bytes and returns the number of bytes written, as a substitute for write(2), and allow platforms that need this to enable it from the build mechanism with NEEDS_CLIPPED_WRITE. Set it for Mac OS X by default. It may be necessary to include this function on Windows, too. Signed-off-by: Filipe Cabecinhas <filcab+git@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
14 lines
293 B
C
14 lines
293 B
C
#include "../git-compat-util.h"
|
|
#undef write
|
|
|
|
/*
|
|
* Version of write that will write at most INT_MAX bytes.
|
|
* Workaround a xnu bug on Mac OS X
|
|
*/
|
|
ssize_t clipped_write(int fildes, const void *buf, size_t nbyte)
|
|
{
|
|
if (nbyte > INT_MAX)
|
|
nbyte = INT_MAX;
|
|
return write(fildes, buf, nbyte);
|
|
}
|