diff options
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 6 |
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); } |