aboutsummaryrefslogtreecommitdiffstats
path: root/security/selinux/hooks.c
diff options
context:
space:
mode:
authorStephen Smalley <sds@tycho.nsa.gov>2008-03-17 08:55:18 -0400
committerJames Morris <jmorris@namei.org>2008-04-02 01:05:52 -0400
commit0794c66d49885a2f615618ce4940434b5b067d84 (patch)
treeb01be53c424c7d4793f5673539c11d09fbbe2b5a /security/selinux/hooks.c
parent0e81a8ae37687845f7cdfa2adce14ea6a5f1dd34 (diff)
selinux: handle files opened with flags 3 by checking ioctl permission
Handle files opened with flags 3 by checking ioctl permission. Default to returning FILE__IOCTL from file_to_av() if the f_mode has neither FMODE_READ nor FMODE_WRITE, and thus check ioctl permission on exec or transfer, thereby validating such descriptors early as with normal r/w descriptors and catching leaks of them prior to attempted usage. Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> Acked-by: Eric Paris <eparis@redhat.com> Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/selinux/hooks.c')
-rw-r--r--security/selinux/hooks.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 41a049f50f58..c2fef7b12dc7 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -1630,6 +1630,12 @@ static inline u32 file_to_av(struct file *file)
1630 else 1630 else
1631 av |= FILE__WRITE; 1631 av |= FILE__WRITE;
1632 } 1632 }
1633 if (!av) {
1634 /*
1635 * Special file opened with flags 3 for ioctl-only use.
1636 */
1637 av = FILE__IOCTL;
1638 }
1633 1639
1634 return av; 1640 return av;
1635} 1641}