Re: copy_from_user/copy_to_user question

From: Heiko Carstens
Date: Sat Dec 03 2005 - 04:45:46 EST


> > > > 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.

Heiko
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/