mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
TOMOYO: Fix memory leak upon file open.
In tomoyo_check_open_permission() since 2.6.36, TOMOYO was by error recalculating already calculated pathname when checking allow_rewrite permission. As a result, memory will leak whenever a file is opened for writing without O_APPEND flag. Also, performance will degrade because TOMOYO is calculating pathname regardless of profile configuration. This patch fixes the leak and performance degrade. Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
parent
1adace9bb0
commit
eae61f3c82
@ -927,7 +927,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
|
|||||||
struct path *path, const int flag)
|
struct path *path, const int flag)
|
||||||
{
|
{
|
||||||
const u8 acc_mode = ACC_MODE(flag);
|
const u8 acc_mode = ACC_MODE(flag);
|
||||||
int error = -ENOMEM;
|
int error = 0;
|
||||||
struct tomoyo_path_info buf;
|
struct tomoyo_path_info buf;
|
||||||
struct tomoyo_request_info r;
|
struct tomoyo_request_info r;
|
||||||
int idx;
|
int idx;
|
||||||
@ -938,9 +938,6 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
|
|||||||
buf.name = NULL;
|
buf.name = NULL;
|
||||||
r.mode = TOMOYO_CONFIG_DISABLED;
|
r.mode = TOMOYO_CONFIG_DISABLED;
|
||||||
idx = tomoyo_read_lock();
|
idx = tomoyo_read_lock();
|
||||||
if (!tomoyo_get_realpath(&buf, path))
|
|
||||||
goto out;
|
|
||||||
error = 0;
|
|
||||||
/*
|
/*
|
||||||
* If the filename is specified by "deny_rewrite" keyword,
|
* If the filename is specified by "deny_rewrite" keyword,
|
||||||
* we need to check "allow_rewrite" permission when the filename is not
|
* we need to check "allow_rewrite" permission when the filename is not
|
||||||
|
Loading…
Reference in New Issue
Block a user