diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c index c9fe5fcecc..668aaaf8b5 100644 --- a/sysdeps/mach/hurd/dl-sysdep.c +++ b/sysdeps/mach/hurd/dl-sysdep.c @@ -401,13 +401,17 @@ libc_hidden_weak (__libc_write) __ssize_t weak_function __writev (int fd, const struct iovec *iov, int niov) { + if (fd >= _hurd_init_dtablesize) + { + errno = EBADF; + return -1; + } + int i; size_t total = 0; for (i = 0; i < niov; ++i) total += iov[i].iov_len; - assert (fd < _hurd_init_dtablesize); - if (total != 0) { char buf[total], *bufp = buf;