summaryrefslogtreecommitdiffstats
path: root/otherlibs/win32unix
diff options
context:
space:
mode:
Diffstat (limited to 'otherlibs/win32unix')
-rw-r--r--otherlibs/win32unix/pipe.c3
-rw-r--r--otherlibs/win32unix/stat.c4
-rw-r--r--otherlibs/win32unix/unixsupport.c1
3 files changed, 3 insertions, 5 deletions
diff --git a/otherlibs/win32unix/pipe.c b/otherlibs/win32unix/pipe.c
index 67e381298..afacd3e17 100644
--- a/otherlibs/win32unix/pipe.c
+++ b/otherlibs/win32unix/pipe.c
@@ -19,7 +19,8 @@
#include "unixsupport.h"
#include <fcntl.h>
-#define SIZEBUF 1024
+/* PR#4749: pick a size that matches that of I/O buffers */
+#define SIZEBUF 4096
CAMLprim value unix_pipe(value unit)
{
diff --git a/otherlibs/win32unix/stat.c b/otherlibs/win32unix/stat.c
index 313882a52..79fc3b2eb 100644
--- a/otherlibs/win32unix/stat.c
+++ b/otherlibs/win32unix/stat.c
@@ -107,9 +107,5 @@ CAMLprim value unix_fstat_64(value handle)
ret = _fstati64(win_CRT_fd_of_filedescr(handle), &buf);
if (ret == -1) uerror("fstat", Nothing);
- if (buf.st_size > Max_long) {
- win32_maperr(ERROR_ARITHMETIC_OVERFLOW);
- uerror("fstat", Nothing);
- }
return stat_aux(1, &buf);
}
diff --git a/otherlibs/win32unix/unixsupport.c b/otherlibs/win32unix/unixsupport.c
index b7d4ad92d..24c4a9e45 100644
--- a/otherlibs/win32unix/unixsupport.c
+++ b/otherlibs/win32unix/unixsupport.c
@@ -108,6 +108,7 @@ static struct error_entry win_error_table[] = {
{ ERROR_NO_PROC_SLOTS, 0, EAGAIN},
{ ERROR_DRIVE_LOCKED, 0, EACCES},
{ ERROR_BROKEN_PIPE, 0, EPIPE},
+ { ERROR_NO_DATA, 0, EPIPE},
{ ERROR_DISK_FULL, 0, ENOSPC},
{ ERROR_INVALID_TARGET_HANDLE, 0, EBADF},
{ ERROR_INVALID_HANDLE, 0, EINVAL},