X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=ipc%2Fmsg.c;h=cd92d342953e500717557a475f09dca9535c6c1a;hb=c259cc281255bdb30ceba190bfd7f37e3ae3fc85;hp=7d1340ccb16b7d333cbbc9d1b2177943d3d63737;hpb=3145012c1c34a3504a2234bd2034ca6ea4767bc5;p=powerpc.git diff --git a/ipc/msg.c b/ipc/msg.c index 7d1340ccb1..cd92d34295 100644 --- a/ipc/msg.c +++ b/ipc/msg.c @@ -19,7 +19,6 @@ */ #include -#include #include #include #include @@ -454,6 +453,11 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf) err = audit_ipc_obj(ipcp); if (err) goto out_unlock_up; + if (cmd==IPC_SET) { + err = audit_ipc_set_perm(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode); + if (err) + goto out_unlock_up; + } err = -EPERM; if (current->euid != ipcp->cuid && @@ -468,10 +472,6 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf) switch (cmd) { case IPC_SET: { - err = audit_ipc_set_perm(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode, ipcp); - if (err) - goto out_unlock_up; - err = -EPERM; if (setbuf.qbytes > msg_ctlmnb && !capable(CAP_SYS_RESOURCE)) goto out_unlock_up;