aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/mqueue.c
diff options
context:
space:
mode:
authorAmy Griffis <amy.griffis@hp.com>2007-02-13 14:15:01 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2007-05-11 05:38:26 -0400
commit4fc03b9beb2314f3adb9e72b7935a80c577954d1 (patch)
tree81e04534c582923fcdc8212497d1487ddae412a8 /ipc/mqueue.c
parent510f4006e7a82b37b53c17bbe64ec20f3a59302b (diff)
[PATCH] complete message queue auditing
Handle the edge cases for POSIX message queue auditing. Collect inode info when opening an existing mq, and for send/receive operations. Remove audit_inode_update() as it has really evolved into the equivalent of audit_inode(). Signed-off-by: Amy Griffis <amy.griffis@hp.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r--ipc/mqueue.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index d17821d3f483..fab5707cb5f7 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -681,6 +681,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
681 681
682 if (oflag & O_CREAT) { 682 if (oflag & O_CREAT) {
683 if (dentry->d_inode) { /* entry already exists */ 683 if (dentry->d_inode) { /* entry already exists */
684 audit_inode(name, dentry->d_inode);
684 error = -EEXIST; 685 error = -EEXIST;
685 if (oflag & O_EXCL) 686 if (oflag & O_EXCL)
686 goto out; 687 goto out;
@@ -693,6 +694,7 @@ asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
693 error = -ENOENT; 694 error = -ENOENT;
694 if (!dentry->d_inode) 695 if (!dentry->d_inode)
695 goto out; 696 goto out;
697 audit_inode(name, dentry->d_inode);
696 filp = do_open(dentry, oflag); 698 filp = do_open(dentry, oflag);
697 } 699 }
698 700
@@ -840,6 +842,7 @@ asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
840 if (unlikely(filp->f_op != &mqueue_file_operations)) 842 if (unlikely(filp->f_op != &mqueue_file_operations))
841 goto out_fput; 843 goto out_fput;
842 info = MQUEUE_I(inode); 844 info = MQUEUE_I(inode);
845 audit_inode(NULL, inode);
843 846
844 if (unlikely(!(filp->f_mode & FMODE_WRITE))) 847 if (unlikely(!(filp->f_mode & FMODE_WRITE)))
845 goto out_fput; 848 goto out_fput;
@@ -923,6 +926,7 @@ asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
923 if (unlikely(filp->f_op != &mqueue_file_operations)) 926 if (unlikely(filp->f_op != &mqueue_file_operations))
924 goto out_fput; 927 goto out_fput;
925 info = MQUEUE_I(inode); 928 info = MQUEUE_I(inode);
929 audit_inode(NULL, inode);
926 930
927 if (unlikely(!(filp->f_mode & FMODE_READ))) 931 if (unlikely(!(filp->f_mode & FMODE_READ)))
928 goto out_fput; 932 goto out_fput;