diff options
| -rw-r--r-- | security/tomoyo/util.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/security/tomoyo/util.c b/security/tomoyo/util.c index 2952ba576fb9..b974a6997d7f 100644 --- a/security/tomoyo/util.c +++ b/security/tomoyo/util.c | |||
| @@ -948,15 +948,18 @@ bool tomoyo_path_matches_pattern(const struct tomoyo_path_info *filename, | |||
| 948 | */ | 948 | */ |
| 949 | const char *tomoyo_get_exe(void) | 949 | const char *tomoyo_get_exe(void) |
| 950 | { | 950 | { |
| 951 | struct file *exe_file; | ||
| 952 | const char *cp; | ||
| 951 | struct mm_struct *mm = current->mm; | 953 | struct mm_struct *mm = current->mm; |
| 952 | const char *cp = NULL; | ||
| 953 | 954 | ||
| 954 | if (!mm) | 955 | if (!mm) |
| 955 | return NULL; | 956 | return NULL; |
| 956 | down_read(&mm->mmap_sem); | 957 | exe_file = get_mm_exe_file(mm); |
| 957 | if (mm->exe_file) | 958 | if (!exe_file) |
| 958 | cp = tomoyo_realpath_from_path(&mm->exe_file->f_path); | 959 | return NULL; |
| 959 | up_read(&mm->mmap_sem); | 960 | |
| 961 | cp = tomoyo_realpath_from_path(&exe_file->f_path); | ||
| 962 | fput(exe_file); | ||
| 960 | return cp; | 963 | return cp; |
| 961 | } | 964 | } |
| 962 | 965 | ||
