Page MenuHomeFreeBSD

D60574.id189331.diff
No OneTemporary

D60574.id189331.diff

diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
--- a/sys/compat/linux/linux_signal.c
+++ b/sys/compat/linux/linux_signal.c
@@ -822,7 +822,10 @@
int error;
int sig;
- if (!LINUX_SIG_VALID(args->sig))
+ /*
+ * Allow signal 0 as a means to check for privileges
+ */
+ if (!LINUX_SIG_VALID(args->sig) && args->sig != 0)
return (EINVAL);
error = copyin(args->info, &linfo, sizeof(linfo));
@@ -833,7 +836,11 @@
/* SI_USER, SI_KERNEL */
return (EPERM);
- sig = linux_to_bsd_signal(args->sig);
+ if (args->sig > 0)
+ sig = linux_to_bsd_signal(args->sig);
+ else
+ sig = 0;
+
ksiginfo_init(&ksi);
error = lsiginfo_to_siginfo(td, &linfo, &ksi.ksi_info, sig);
if (error != 0)

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 12, 6:55 AM (5 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40581584
Default Alt Text
D60574.id189331.diff (729 B)

Event Timeline