Re: [PATCH] Compat signal fixes for 64-bit parisc.
"Carlos O'Donell" <[email protected]>
| Newsgroups | gmane.linux.ports.hppa |
|---|---|
| Message-ID | <[email protected]> |
On 2/12/07, Kyle McMartin <[email protected]> wrote: > On Mon, Feb 12, 2007 at 09:14:28PM -0500, Carlos O'Donell wrote: > > @@ -505,17 +505,15 @@ asmlinkage long compat_sys_rt_sigqueuein > > struct compat_siginfo __user *uinfo) > > { > > siginfo_t info; > > + int ret; > > + mm_segment_t old_fs = get_fs(); > > > > if (copy_siginfo_from_user32(&info, uinfo)) > > return -EFAULT; > > > > - /* Not even root can pretend to send signals from the kernel. > > - Nor can they impersonate a kill(), which adds source info. */ > > - if (info.si_code >= 0) > > - return -EPERM; > > - info.si_signo = sig; > > - > > - /* POSIX.1b doesn't mention process groups. */ > > - return kill_proc_info(sig, &info, pid); > > + set_fs (KERNEL_DS); > > + ret = sys_rt_sigqueueinfo(pid, sig, &info); > > + set_fs (old_fs); > > + return ret; > > } > > > > Why? We replicate the code in sys_rt_sigqueueinfo here to avoid the nasty > set_fs/get_fs hacks. See my compat_sys_sysinfo changes for reference. Excellent review. I'll drop this part of the patch and look at the compat_sys_sysinfo changes. I saw some crazy stuff involving "compat_alloc_userspace" which looks a little crazy (not to mention it can't be called recursively). c.