Merge branch 'audit.b3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current
* 'audit.b3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (22 commits) [PATCH] fix audit_init failure path [PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format [PATCH] sem2mutex: audit_netlink_sem [PATCH] simplify audit_free() locking [PATCH] Fix audit operators [PATCH] promiscuous mode [PATCH] Add tty to syscall audit records [PATCH] add/remove rule update [PATCH] audit string fields interface + consumer [PATCH] SE Linux audit events [PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c [PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL [PATCH] Fix IA64 success/failure indication in syscall auditing. [PATCH] Miscellaneous bug and warning fixes [PATCH] Capture selinux subject/object context information. [PATCH] Exclude messages by message type [PATCH] Collect more inode information during syscall processing. [PATCH] Pass dentry, not just name, in fsnotify creation hooks. [PATCH] Define new range of userspace messages. [PATCH] Filter rule comparators ... Fixed trivial conflict in security/selinux/hooks.c
This commit is contained in:
@@ -428,8 +428,6 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
return -EFAULT;
|
||||
if (copy_msqid_from_user (&setbuf, buf, version))
|
||||
return -EFAULT;
|
||||
if ((err = audit_ipc_perms(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode)))
|
||||
return err;
|
||||
break;
|
||||
case IPC_RMID:
|
||||
break;
|
||||
@@ -460,6 +458,9 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
switch (cmd) {
|
||||
case IPC_SET:
|
||||
{
|
||||
if ((err = audit_ipc_perms(setbuf.qbytes, setbuf.uid, setbuf.gid, setbuf.mode, ipcp)))
|
||||
goto out_unlock_up;
|
||||
|
||||
err = -EPERM;
|
||||
if (setbuf.qbytes > msg_ctlmnb && !capable(CAP_SYS_RESOURCE))
|
||||
goto out_unlock_up;
|
||||
|
@@ -809,8 +809,6 @@ 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)
|
||||
@@ -821,7 +819,6 @@ static int semctl_down(int semid, int semnum, int cmd, int version, union semun
|
||||
goto out_unlock;
|
||||
}
|
||||
ipcp = &sma->sem_perm;
|
||||
|
||||
if (current->euid != ipcp->cuid &&
|
||||
current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) {
|
||||
err=-EPERM;
|
||||
@@ -838,6 +835,8 @@ static int semctl_down(int semid, int semnum, int cmd, int version, union semun
|
||||
err = 0;
|
||||
break;
|
||||
case IPC_SET:
|
||||
if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, setbuf.mode, ipcp)))
|
||||
goto out_unlock;
|
||||
ipcp->uid = setbuf.uid;
|
||||
ipcp->gid = setbuf.gid;
|
||||
ipcp->mode = (ipcp->mode & ~S_IRWXUGO)
|
||||
|
@@ -620,13 +620,13 @@ asmlinkage long sys_shmctl (int shmid, int cmd, struct shmid_ds __user *buf)
|
||||
err = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, setbuf.mode)))
|
||||
return err;
|
||||
down(&shm_ids.sem);
|
||||
shp = shm_lock(shmid);
|
||||
err=-EINVAL;
|
||||
if(shp==NULL)
|
||||
goto out_up;
|
||||
if ((err = audit_ipc_perms(0, setbuf.uid, setbuf.gid, setbuf.mode, &(shp->shm_perm))))
|
||||
goto out_unlock_up;
|
||||
err = shm_checkid(shp,shmid);
|
||||
if(err)
|
||||
goto out_unlock_up;
|
||||
|
Reference in New Issue
Block a user