Understanding of write file operation in char driver

Valdis.Kletnieks at vt.edu Valdis.Kletnieks at vt.edu
Fri Jan 2 11:02:12 EST 2015


On Fri, 02 Jan 2015 07:50:55 +0530, me storage said:

> Can any one please tell me difference between kernal space & user space in
> code perspective

Two biggies:

1) Kernel space pages are usually nailed down and not paging in and out,
this is *not* true for userspace pages (so special tap-dancing in
copy_(to/from)_user() is needed to make sure no page faults happen).

2) Data inside the kernel can usually be trusted from a security standpoint.
Data in userspace *MUST NOT* be trusted.  Also, beware of TOCTOU (time of
check / time of use) bugs - that's why we should copy the user-supplied data
to an internal buffer *first*, and then validity-check the buffer - if we check
the value in userspace and then later copy it, there's a race condition where
the userspace value can be changed after the check but before the copy.

Also, keep in mind that a userspace pointer needs to be translated before
using it to dereference data from kernel space....
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150102/804deb31/attachment.bin 


More information about the Kernelnewbies mailing list