Fix data leak in fs_file_write()
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 2 Mar 2019 01:13:31 +0000 (20:13 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Sat, 2 Mar 2019 01:16:11 +0000 (20:16 -0500)
commitd9d5899d33d74df4e3375635d480496d43e758c3
treeec54e27e39ab27247e899a73bb20eb2dd69df022
parent598870e5d3566dce00516a5b585bbda4da203904
Fix data leak in fs_file_write()

The user could give write() the valid address of a non-resident page,
particularly one in a file-backed region.  The kernel would fail to read
from it, and thus not write any data into the page cache.  The page
cache page is uninitialized, and thus contains arbitrary kernel data.

This is a stopgap, until I sort out handling page faults in the kernel -
particularly on file-backed virtual addresses.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/include/umem.h
kern/src/ns/fs_file.c
kern/src/umem.c