[parisc-linux] Re: [PATCH] Compat signal fixes for 64-bit parisc.
Carlos O'Donell
carlos at systemhalted.org
Mon Feb 12 19:39:16 MST 2007
On 2/12/07, Kyle McMartin <kyle at mcmartin.ca> 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.
More information about the parisc-linux
mailing list