Index: signal.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/signal.cc,v retrieving revision 1.22 diff -u -r1.22 signal.cc --- signal.cc 2001/01/17 14:57:09 1.22 +++ signal.cc 2001/02/09 15:27:10 @@ -46,7 +46,7 @@ _sig_func_ptr prev; /* check that sig is in right range */ - if (sig < 0 || sig >= NSIG) + if (sig < 0 || sig >= NSIG || sig == SIGKILL || sig == SIGSTOP) { set_errno (EINVAL); syscall_printf ("SIG_ERR = signal (%d, %p)", sig, func); Index: syscalls.cc =================================================================== RCS file: /cvs/src/src/winsup/cygwin/syscalls.cc,v retrieving revision 1.81 diff -u -r1.81 syscalls.cc --- syscalls.cc 2001/02/06 14:07:02 1.81 +++ syscalls.cc 2001/02/09 15:27:11 @@ -447,7 +447,12 @@ off_t res; sigframe thisframe (mainthread); - if (fdtab.not_open (fd)) + if ( dir != SEEK_SET && dir != SEEK_CUR && dir != SEEK_END ) + { + set_errno ( EINVAL ); + res = -1; + } + else if (fdtab.not_open (fd)) { set_errno (EBADF); res = -1;