]> sourceware.org Git - newlib-cygwin.git/commitdiff
* signal.cc (signal): Prohibit setting handlers for SIGKILL and SIGSTOP
authorEgor Duda <deo@logos-m.ru>
Fri, 16 Feb 2001 18:49:20 +0000 (18:49 +0000)
committerEgor Duda <deo@logos-m.ru>
Fri, 16 Feb 2001 18:49:20 +0000 (18:49 +0000)
* signal.cc (sigaction): Ditto
* syscalls.cc (_lseek): Return EINVAL on invalid input

winsup/cygwin/ChangeLog
winsup/cygwin/signal.cc
winsup/cygwin/syscalls.cc

index 05a9c5c91b82a972294b9eea45b95ff0fd893fd8..c035a64a74f8f5dd9ad4952a926715bc0bd4f541 100644 (file)
@@ -1,3 +1,10 @@
+2001-02-16  Egor Duda  <deo@logos-m.ru>
+
+       * signal.cc (signal): Prohibit setting handlers for SIGKILL and
+       SIGSTOP
+       * signal.cc (sigaction): Ditto
+       * syscalls.cc (_lseek): Return EINVAL on invalid input
+
 Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com>
 
        * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when
index 61535fff3c1035c54d599083273b1ab49e92884b..ea4a4394a8e03e4a795eca3314c56325449afc84 100644 (file)
@@ -46,7 +46,7 @@ signal (int sig, _sig_func_ptr func)
   _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);
@@ -260,7 +260,7 @@ sigaction (int sig, const struct sigaction *newact, struct sigaction *oldact)
 
   if (newact)
     {
-      if ((sig == SIGKILL || sig == SIGSTOP) && newact->sa_handler != SIG_DFL)
+      if (sig == SIGKILL || sig == SIGSTOP)
        {
          set_errno (EINVAL);
          return -1;
index 99e3de7ec3863b1e32d5204faa5ebd6d751e7f9c..d5bb510eec2ef27d3ee68a2cef4e117903602ff5 100644 (file)
@@ -447,7 +447,12 @@ _lseek (int fd, off_t pos, int dir)
   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;
This page took 0.034337 seconds and 5 git commands to generate.