diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-22 20:25:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-22 20:25:00 -0800 |
commit | ad2aec7c963e8ce32c2f2106276ab6ba549ff355 (patch) | |
tree | c740e9dd355ae4f0f4f39fd74d2ca4b8e5393284 /security/tomoyo/domain.c | |
parent | de5817bbfb569f22406970f81360ac3f694ba6e8 (diff) | |
parent | 08ae2487b202ff92b1c6393f18630895f39460bf (diff) | |
download | linux-ad2aec7c963e8ce32c2f2106276ab6ba549ff355.tar.gz linux-ad2aec7c963e8ce32c2f2106276ab6ba549ff355.tar.bz2 linux-ad2aec7c963e8ce32c2f2106276ab6ba549ff355.zip |
Merge tag 'tomoyo-pr-20250123' of git://git.code.sf.net/p/tomoyo/tomoyo
Pull tomoyo updates from Tetsuo Handa:
"Small changes to improve usability"
* tag 'tomoyo-pr-20250123' of git://git.code.sf.net/p/tomoyo/tomoyo:
tomoyo: automatically use patterns for several situations in learning mode
tomoyo: use realpath if symlink's pathname refers to procfs
tomoyo: don't emit warning in tomoyo_write_control()
Diffstat (limited to 'security/tomoyo/domain.c')
-rw-r--r-- | security/tomoyo/domain.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/security/tomoyo/domain.c b/security/tomoyo/domain.c index aed9e3ef2c9e..3a7b0874cf44 100644 --- a/security/tomoyo/domain.c +++ b/security/tomoyo/domain.c @@ -722,10 +722,17 @@ int tomoyo_find_next_domain(struct linux_binprm *bprm) ee->bprm = bprm; ee->r.obj = &ee->obj; ee->obj.path1 = bprm->file->f_path; - /* Get symlink's pathname of program. */ + /* + * Get symlink's pathname of program, but fallback to realpath if + * symlink's pathname does not exist or symlink's pathname refers + * to proc filesystem (e.g. /dev/fd/<num> or /proc/self/fd/<num> ). + */ exename.name = tomoyo_realpath_nofollow(original_name); + if (exename.name && !strncmp(exename.name, "proc:/", 6)) { + kfree(exename.name); + exename.name = NULL; + } if (!exename.name) { - /* Fallback to realpath if symlink's pathname does not exist. */ exename.name = tomoyo_realpath_from_path(&bprm->file->f_path); if (!exename.name) goto out; |