Print unimplemented syscall number to the ctty on SIGSYS, if enabled

by the knob kern.lognosys.

Discussed with:	imp
Reviewed by:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	3 weeks
X-Differential revision:	https://reviews.freebsd.org/D11080
This commit is contained in:
Konstantin Belousov 2017-06-12 21:11:11 +00:00
parent 2d88da2f06
commit f5a077c390
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=319874

View File

@ -150,6 +150,10 @@ static int signal_alloc_fail = 0;
SYSCTL_INT(_kern_sigqueue, OID_AUTO, alloc_fail, CTLFLAG_RD,
&signal_alloc_fail, 0, "signals failed to be allocated");
static int kern_lognosys = 0;
SYSCTL_INT(_kern, OID_AUTO, lognosys, CTLFLAG_RWTUN, &kern_lognosys, 0,
"Log invalid syscalls");
SYSINIT(signal, SI_SUB_P1003_1B, SI_ORDER_FIRST+3, sigqueue_start, NULL);
/*
@ -3568,11 +3572,16 @@ struct nosys_args {
int
nosys(struct thread *td, struct nosys_args *args)
{
struct proc *p = td->td_proc;
struct proc *p;
p = td->td_proc;
PROC_LOCK(p);
tdsignal(td, SIGSYS);
PROC_UNLOCK(p);
if (kern_lognosys)
uprintf("pid %d comm %s: nosys %d\n", p->p_pid, p->p_comm,
td->td_sa.code);
return (ENOSYS);
}