Re: copy_from_user/copy_to_user question

Steven Rostedt
2005-12-03T12:14:54Z

On Sat, 2005-12-03 at 10:43 +0100, Heiko Carstens wrote:
> > > > > Secondly, they seem to use memcpy as opposed to using
> > > > > copy_to_user/copy_from_user which is also very
> > > > > dangerous.
> > > >
> > > > If they are grabbing data from user context into kernel (or vise versa)
> > > > that could easily cause an oops. Not to mention it is a security risk.
> > >
> > > Not to mention it simply won't work on a many platforms, no matter what...
> >
> > Hmm, I've only worked with a few platforms (i386, x86_64, ppc, mips, and
> > a little arm but I don't remember that much). I believe that a memcpy
> > could work on all these platforms (error prone of course, but if the
> > memory is mapped its OK). When entering a system call, the kernel still
> > has access to the memory locations assigned to the user.
>
> Won't work at all on platforms that have distinct address spaces for user
> and kernel space. E.g. on s390/s390x it wouldn't work. And yes, there are
> special instructions to copy data between address spaces.

Thanks for the update. That's why I love working in an open
environment. You learn something new every day ;)

-- Steve