TOMOYO: Copy directly to userspace buffer.
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Thu, 24 Jun 2010 05:57:16 +0000 (14:57 +0900)
committerJames Morris <jmorris@namei.org>
Mon, 2 Aug 2010 05:34:45 +0000 (15:34 +1000)
commitf23571e866309a2048030ef6a5f0725cf139d4c9
tree0116bcef462f367307b2db927b249b7ce21039c2
parent5db5a39b6462c8360c9178b28f4b07c320dfca1c
TOMOYO: Copy directly to userspace buffer.

When userspace program reads policy from /sys/kernel/security/tomoyo/
interface, TOMOYO uses line buffered mode. A line has at least one word.

Commit 006dacc "TOMOYO: Support longer pathname." changed a word's max length
from 4000 bytes to max kmalloc()able bytes. By that commit, a line's max length
changed from 8192 bytes to more than max kmalloc()able bytes.

Max number of words in a line remains finite. This patch changes the way of
buffering so that all words in a line are firstly directly copied to userspace
buffer as much as possible and are secondly queued for next read request.
Words queued are guaranteed to be valid until /sys/kernel/security/tomoyo/
interface is close()d.

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: James Morris <jmorris@namei.org>
security/tomoyo/common.c
security/tomoyo/common.h
security/tomoyo/memory.c