diff options
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/mqueue.c | 2 | ||||
-rw-r--r-- | ipc/shm.c | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 54b4077fed79..a8ddadbc7459 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -1156,10 +1156,12 @@ SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes, | |||
1156 | omqstat.mq_flags = filp->f_flags & O_NONBLOCK; | 1156 | omqstat.mq_flags = filp->f_flags & O_NONBLOCK; |
1157 | if (u_mqstat) { | 1157 | if (u_mqstat) { |
1158 | audit_mq_getsetattr(mqdes, &mqstat); | 1158 | audit_mq_getsetattr(mqdes, &mqstat); |
1159 | spin_lock(&filp->f_lock); | ||
1159 | if (mqstat.mq_flags & O_NONBLOCK) | 1160 | if (mqstat.mq_flags & O_NONBLOCK) |
1160 | filp->f_flags |= O_NONBLOCK; | 1161 | filp->f_flags |= O_NONBLOCK; |
1161 | else | 1162 | else |
1162 | filp->f_flags &= ~O_NONBLOCK; | 1163 | filp->f_flags &= ~O_NONBLOCK; |
1164 | spin_unlock(&filp->f_lock); | ||
1163 | 1165 | ||
1164 | inode->i_atime = inode->i_ctime = CURRENT_TIME; | 1166 | inode->i_atime = inode->i_ctime = CURRENT_TIME; |
1165 | } | 1167 | } |
@@ -39,6 +39,7 @@ | |||
39 | #include <linux/nsproxy.h> | 39 | #include <linux/nsproxy.h> |
40 | #include <linux/mount.h> | 40 | #include <linux/mount.h> |
41 | #include <linux/ipc_namespace.h> | 41 | #include <linux/ipc_namespace.h> |
42 | #include <linux/ima.h> | ||
42 | 43 | ||
43 | #include <asm/uaccess.h> | 44 | #include <asm/uaccess.h> |
44 | 45 | ||
@@ -383,6 +384,7 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) | |||
383 | error = PTR_ERR(file); | 384 | error = PTR_ERR(file); |
384 | if (IS_ERR(file)) | 385 | if (IS_ERR(file)) |
385 | goto no_file; | 386 | goto no_file; |
387 | ima_shm_check(file); | ||
386 | 388 | ||
387 | id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni); | 389 | id = ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni); |
388 | if (id < 0) { | 390 | if (id < 0) { |
@@ -887,6 +889,7 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr) | |||
887 | file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); | 889 | file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); |
888 | if (!file) | 890 | if (!file) |
889 | goto out_free; | 891 | goto out_free; |
892 | ima_shm_check(file); | ||
890 | 893 | ||
891 | file->private_data = sfd; | 894 | file->private_data = sfd; |
892 | file->f_mapping = shp->shm_file->f_mapping; | 895 | file->f_mapping = shp->shm_file->f_mapping; |