diff options
Diffstat (limited to 'security/tomoyo/util.c')
-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 | ||