diff options
Diffstat (limited to 'security/selinux/hooks.c')
-rw-r--r-- | security/selinux/hooks.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 55cec4d6f117..e4d81a42fca4 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -1689,10 +1689,12 @@ static inline void flush_unauthorized_files(struct files_struct * files) | |||
1689 | { | 1689 | { |
1690 | struct avc_audit_data ad; | 1690 | struct avc_audit_data ad; |
1691 | struct file *file, *devnull = NULL; | 1691 | struct file *file, *devnull = NULL; |
1692 | struct tty_struct *tty = current->signal->tty; | 1692 | struct tty_struct *tty; |
1693 | struct fdtable *fdt; | 1693 | struct fdtable *fdt; |
1694 | long j = -1; | 1694 | long j = -1; |
1695 | 1695 | ||
1696 | mutex_lock(&tty_mutex); | ||
1697 | tty = current->signal->tty; | ||
1696 | if (tty) { | 1698 | if (tty) { |
1697 | file_list_lock(); | 1699 | file_list_lock(); |
1698 | file = list_entry(tty->tty_files.next, typeof(*file), f_u.fu_list); | 1700 | file = list_entry(tty->tty_files.next, typeof(*file), f_u.fu_list); |
@@ -1712,6 +1714,7 @@ static inline void flush_unauthorized_files(struct files_struct * files) | |||
1712 | } | 1714 | } |
1713 | file_list_unlock(); | 1715 | file_list_unlock(); |
1714 | } | 1716 | } |
1717 | mutex_unlock(&tty_mutex); | ||
1715 | 1718 | ||
1716 | /* Revalidate access to inherited open files. */ | 1719 | /* Revalidate access to inherited open files. */ |
1717 | 1720 | ||