2007-03-08 Daniel Franke <franke.daniel@gmail.com>
authordfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Mar 2007 21:46:16 +0000 (21:46 +0000)
committerdfranke <dfranke@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Mar 2007 21:46:16 +0000 (21:46 +0000)
        PR fortran/30947
        * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with
        integer arguments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122716 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/intrinsics/signal.c

index ad71a7e..889a70d 100644 (file)
@@ -1,3 +1,9 @@
+2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/30947
+       * intrinsics/signal.c (alarm_sub_int): Avoid SEGFAULT with 
+       integer arguments.
+
 2007-03-04  Thomas Koenig  <Thomas.Koenig@online.de>
 
        PR libfortran/30981
index e912c90..2c2f38d 100644 (file)
@@ -170,14 +170,14 @@ alarm_sub_int (int *seconds, int *handler, int *status)
 #if defined (SIGALRM) && defined (HAVE_ALARM) && defined (HAVE_SIGNAL)
   if (status != NULL)
     {
-      if (signal (SIGALRM, (void (*)(int)) handler) == SIG_ERR)
+      if (signal (SIGALRM, (void (*)(int)) *handler) == SIG_ERR)
        *status = -1;
       else
        *status = alarm (*seconds);
     }
   else
     {
-      signal (SIGALRM, (void (*)(int)) handler);
+      signal (SIGALRM, (void (*)(int)) *handler);
       alarm (*seconds);
     }
 #else