diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 261259086..9dee41b2f 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2006-01-01 Christopher Faylor + + * exceptions.cc (sigpacket::process): Pass actual reference to signal's + sigaction structure to setup_handler. + 2006-01-01 Christopher Faylor * exceptions.cc (_cygtls::interrupt_setup): Implement SA_RESETHAND. diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 73f5cfd5e..649f93fde 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1082,7 +1082,7 @@ sigpacket::process () int rc = 1; sigproc_printf ("signal %d processing", si.si_signo); - struct sigaction thissig = global_sigs[si.si_signo]; + struct sigaction& thissig = global_sigs[si.si_signo]; myself->rusage_self.ru_nsignals++; @@ -1182,7 +1182,8 @@ stop: if (ISSTATE (myself, PID_STOPPED)) goto done; handler = (void *) sig_handle_tty_stop; - thissig = global_sigs[SIGSTOP]; + struct sigaction dummy = global_sigs[SIGSTOP]; + thissig = dummy; dosig: /* Dispatch to the appropriate function. */