Subject: [clisp-list] segfault with sigaction-old SIGCHLD (2)

From: Pascal Bourguignon <[email-masked]>
Date: Tue Dec 24 02:05:03 2002

How comes I get a seg fault for (linux:sigaction-old linux:SIGCHLD nil)
while (linux:sigaction-old linux:SIGINT nil) is ok?

[3]> (lisp-implementation-version)
"2.30 (released 2002-09-15) (built 3247263145) (memory 3247263385)"
[13]> (linux:sigaction-old linux:SIGINT nil)
0 ;
#S(LINUX:sigaction :|sa_handler| #<FOREIGN-FUNCTION #x0807F270>
   :|sa_mask| #S(LINUX:sigset_t :|val| #(2)) :|sa_flags| 335544320
   :|sa_restorer| #<FOREIGN-FUNCTION #x405BC7F8>)
[14]> (linux:sigaction-old linux:SIGCHLD nil)
Segmentation fault

Note that SIGCHLD is the only signal provoking this segfault:

[pascal@thalassa clisp]$  i=1 ; while [ $i -le 31 ] ; do echo signal $i ; clisp -norc -q -K full -x '(linux:sigaction-old '$i' nil)'; echo $? ; i=$(( $i + 1 )) ; done
signal 1
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 2
0 ;
#S(LINUX:sigaction :|sa_handler| #<FOREIGN-FUNCTION #x0807F270>
   :|sa_mask| #S(LINUX:sigset_t :|val| #(2)) :|sa_flags| 335544320
   :|sa_restorer| #<FOREIGN-FUNCTION #x405BC7F8>)
0
signal 3
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 4
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 5
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 6
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 7
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 8
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 9
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| NIL)
0
signal 10
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 11
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 12
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 13
0 ;
#S(LINUX:sigaction :|sa_handler| #<FOREIGN-FUNCTION #x0807F1D0>
   :|sa_mask| #S(LINUX:sigset_t :|val| #(4096)) :|sa_flags| 335544320
   :|sa_restorer| #<FOREIGN-FUNCTION #x405BC7F8>)
0
signal 14
0 ;
#S(LINUX:sigaction :|sa_handler| #<FOREIGN-FUNCTION #x0807F2B0>
   :|sa_mask| #S(LINUX:sigset_t :|val| #(8192)) :|sa_flags| 335544320
   :|sa_restorer| #<FOREIGN-FUNCTION #x405BC7F8>)
0
signal 15
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 16
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x0804CC38>)
0
signal 17
Segmentation fault
139
signal 18
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x0804CC38>)
0
signal 19
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| NIL)
0
signal 20
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 21
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 22
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 23
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x0804CC38>)
0
signal 24
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 25
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 26
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0
signal 27
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x0804CC38>)
0
signal 28
0 ;
#S(LINUX:sigaction :|sa_handler| #<FOREIGN-FUNCTION #x0807F370>
   :|sa_mask| #S(LINUX:sigset_t :|val| #(134217728)) :|sa_flags| 335544320
   :|sa_restorer| #<FOREIGN-FUNCTION #x405BC7F8>)
0
signal 29
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E97F8>)
0
signal 30
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x0804CC38>)
0
signal 31
0 ;
#S(LINUX:sigaction :|sa_handler| NIL :|sa_mask| #S(LINUX:sigset_t :|val| #())
   :|sa_flags| 0 :|sa_restorer| #<FOREIGN-FUNCTION #x400E87F8>)
0

-- 
__Pascal_Bourguignon__                   http://www.informatimago.com/
----------------------------------------------------------------------
There is a fault in reality. do not adjust your minds. -- Salman Rushdie