diff options
Diffstat (limited to 'ipc/shm.c')
| -rw-r--r-- | ipc/shm.c | 3 |
1 files changed, 3 insertions, 0 deletions
| @@ -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; |
