summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/syscalls.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index d6ef25c58..1453f4fed 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -1768,7 +1768,11 @@ ftruncate (int fd, off_t length)
sigframe thisframe (mainthread);
int res = -1;
- if (cygheap->fdtab.not_open (fd))
+ if (length < 0)
+ {
+ set_errno (EINVAL);
+ }
+ else if (cygheap->fdtab.not_open (fd))
{
set_errno (EBADF);
}