diff options
author | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> | 2011-03-02 16:54:24 +0900 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2011-03-03 10:13:26 +1100 |
commit | eae61f3c829439f8f9121b5cd48a14be04df451f (patch) | |
tree | 607f79bb57996e059c1da17a0411d5763c4748ca /security/tomoyo | |
parent | 1adace9bb04a5f4a4dea9e642089102661bb0ceb (diff) | |
download | linux-3.10-eae61f3c829439f8f9121b5cd48a14be04df451f.tar.gz linux-3.10-eae61f3c829439f8f9121b5cd48a14be04df451f.tar.bz2 linux-3.10-eae61f3c829439f8f9121b5cd48a14be04df451f.zip |
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>
Diffstat (limited to 'security/tomoyo')
-rw-r--r-- | security/tomoyo/file.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c index 9d32f182301..cb09f1fce91 100644 --- a/security/tomoyo/file.c +++ b/security/tomoyo/file.c @@ -927,7 +927,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain, struct path *path, const int flag) { const u8 acc_mode = ACC_MODE(flag); - int error = -ENOMEM; + int error = 0; struct tomoyo_path_info buf; struct tomoyo_request_info r; int idx; @@ -938,9 +938,6 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain, buf.name = NULL; r.mode = TOMOYO_CONFIG_DISABLED; idx = tomoyo_read_lock(); - if (!tomoyo_get_realpath(&buf, path)) - goto out; - error = 0; /* * If the filename is specified by "deny_rewrite" keyword, * we need to check "allow_rewrite" permission when the filename is not |