vserver 2.0 rc7
[linux-2.6.git] / ipc / sem.c
index 416d06a..2dae80d 100644 (file)
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -72,6 +72,7 @@
 #include <linux/smp_lock.h>
 #include <linux/security.h>
 #include <linux/syscalls.h>
+#include <linux/audit.h>
 #include <asm/uaccess.h>
 #include "util.h"
 
@@ -804,6 +805,8 @@ static int semctl_down(int semid, int semnum, int cmd, int version, union semun
        if(cmd == IPC_SET) {
                if(copy_semid_from_user (&setbuf, arg.buf, version))
                        return -EFAULT;
+               if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, setbuf.mode)))
+                       return err;
        }
        sma = sem_lock(semid);
        if(sma==NULL)