| From 25add8cf99c9ec8b8dc0acd8b9241e963fc0d29c Mon Sep 17 00:00:00 2001 |
| From: Tetsuo Handa <from-tomoyo-users-en@I-love.SAKURA.ne.jp> |
| Date: Sun, 15 Jan 2012 11:05:59 +0900 |
| Subject: TOMOYO: Accept \000 as a valid character. |
| |
| From: Tetsuo Handa <from-tomoyo-users-en@I-love.SAKURA.ne.jp> |
| |
| commit 25add8cf99c9ec8b8dc0acd8b9241e963fc0d29c upstream. |
| |
| TOMOYO 2.5 in Linux 3.2 and later handles Unix domain socket's address. |
| Thus, tomoyo_correct_word2() needs to accept \000 as a valid character, or |
| TOMOYO 2.5 cannot handle Unix domain's abstract socket address. |
| |
| Reported-by: Steven Allen <steven@stebalien.com> |
| Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> |
| Signed-off-by: James Morris <jmorris@namei.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| security/tomoyo/util.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/security/tomoyo/util.c |
| +++ b/security/tomoyo/util.c |
| @@ -492,13 +492,13 @@ static bool tomoyo_correct_word2(const c |
| if (d < '0' || d > '7' || e < '0' || e > '7') |
| break; |
| c = tomoyo_make_byte(c, d, e); |
| - if (tomoyo_invalid(c)) |
| - continue; /* pattern is not \000 */ |
| + if (c <= ' ' || c >= 127) |
| + continue; |
| } |
| goto out; |
| } else if (in_repetition && c == '/') { |
| goto out; |
| - } else if (tomoyo_invalid(c)) { |
| + } else if (c <= ' ' || c >= 127) { |
| goto out; |
| } |
| } |