Signal logging for Linux 2.4.x kernels. - Jedi/Sector One . --- kernel/signal.c.orig 2002-12-08 13:00:39.000000000 +0100 +++ kernel/signal.c 2002-12-08 14:06:59.000000000 +0100 @@ -529,6 +529,46 @@ if (!sig || !t->sig) goto out_nolock; + switch (sig) { + case SIGPIPE: + case SIGALRM: + case SIGURG: + case SIGXCPU: + case SIGXFSZ: + case SIGVTALRM: + case SIGPROF: + case SIGIO: + if (!ignored_signal(sig, t)) { + break; + } + case SIGILL: + case SIGTRAP: + case SIGIOT: + case SIGBUS: + case SIGFPE: + case SIGSEGV: + case SIGSTKFLT: + case SIGPWR: + case SIGSYS: + if (t->p_pptr != NULL) { + printk(KERN_ERR "signal %d received by (%.32s:%d) UID(%lu) " + "EUID(%lu), parent (%.32s:%d) UID(%lu) EUID(%lu)%s\n", + sig, t->comm, t->pid, + (unsigned long) t->uid, + (unsigned long) t->euid, + t->p_pptr->comm, t->p_pptr->pid, + (unsigned long) t->p_pptr->uid, + (unsigned long) t->p_pptr->euid, + ignored_signal(sig, t) ? " [ignored]" : ""); + } else { + printk(KERN_ERR "signal %d received by (%.32s:%d) UID(%lu) " + "EUID(%lu), zombie%s\n", sig, t->comm, t->pid, + (unsigned long) t->uid, + (unsigned long) t->euid, + ignored_signal(sig, t) ? " [ignored]" : ""); + } + } + spin_lock_irqsave(&t->sigmask_lock, flags); handle_stop_signal(sig, t);