Commit eae61f3c authored by Tetsuo Handa's avatar Tetsuo Handa Committed by James Morris

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: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent 1adace9b
...@@ -927,7 +927,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain, ...@@ -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, ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment