Searched refs:ipcp (Results 1 - 11 of 11) sorted by relevance

/linux-4.1.27/ipc/
H A Dutil.c293 * @ipcp: ipc permission set
303 * It is called with ipc_ids.rwsem and ipcp->lock held.
306 struct kern_ipc_perm *ipcp, ipc_check_perms()
312 if (ipcperms(ns, ipcp, params->flg)) ipc_check_perms()
315 err = ops->associate(ipcp, params->flg); ipc_check_perms()
317 err = ipcp->id; ipc_check_perms()
340 struct kern_ipc_perm *ipcp; ipcget_public() local
349 ipcp = ipc_findkey(ids, params->key); ipcget_public()
350 if (ipcp == NULL) { ipcget_public()
364 err = ops->more_checks(ipcp, params); ipcget_public()
370 err = ipc_check_perms(ns, ipcp, ops, params); ipcget_public()
372 ipc_unlock(ipcp); ipcget_public()
383 * @ipcp: ipc perm structure containing the identifier to remove
388 void ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_rmid() argument
390 int lid = ipcid_to_idx(ipcp->id); ipc_rmid()
394 ipcp->deleted = true; ipc_rmid()
479 * @ipcp: ipc permission set
487 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag) ipcperms() argument
492 audit_ipc_obj(ipcp); ipcperms()
494 granted_mode = ipcp->mode; ipcperms()
495 if (uid_eq(euid, ipcp->cuid) || ipcperms()
496 uid_eq(euid, ipcp->uid)) ipcperms()
498 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid)) ipcperms()
505 return security_ipc_permission(ipcp, flag); ipcperms()
693 struct kern_ipc_perm *ipcp; ipcctl_pre_down_nolock() local
695 ipcp = ipc_obtain_object_check(ids, id); ipcctl_pre_down_nolock()
696 if (IS_ERR(ipcp)) { ipcctl_pre_down_nolock()
697 err = PTR_ERR(ipcp); ipcctl_pre_down_nolock()
701 audit_ipc_obj(ipcp); ipcctl_pre_down_nolock()
707 if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid) || ipcctl_pre_down_nolock()
709 return ipcp; /* successful lookup */ ipcctl_pre_down_nolock()
305 ipc_check_perms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, const struct ipc_ops *ops, struct ipc_params *params) ipc_check_perms() argument
H A Dshm.c89 static void do_shm_rmid(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) do_shm_rmid() argument
92 shp = container_of(ipcp, struct shmid_kernel, shm_perm); do_shm_rmid()
132 struct kern_ipc_perm *ipcp = ipc_obtain_object(&shm_ids(ns), id); shm_obtain_object() local
134 if (IS_ERR(ipcp)) shm_obtain_object()
135 return ERR_CAST(ipcp); shm_obtain_object()
137 return container_of(ipcp, struct shmid_kernel, shm_perm); shm_obtain_object()
142 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&shm_ids(ns), id); shm_obtain_object_check() local
144 if (IS_ERR(ipcp)) shm_obtain_object_check()
145 return ERR_CAST(ipcp); shm_obtain_object_check()
147 return container_of(ipcp, struct shmid_kernel, shm_perm); shm_obtain_object_check()
156 struct kern_ipc_perm *ipcp = ipc_lock(&shm_ids(ns), id); shm_lock() local
163 if (IS_ERR(ipcp)) shm_lock()
164 return (void *)ipcp; shm_lock()
165 return container_of(ipcp, struct shmid_kernel, shm_perm); shm_lock()
168 static inline void shm_lock_by_ptr(struct shmid_kernel *ipcp) shm_lock_by_ptr() argument
171 ipc_lock_object(&ipcp->shm_perm); shm_lock_by_ptr()
302 struct kern_ipc_perm *ipcp = p; shm_try_destroy_orphaned() local
303 struct shmid_kernel *shp = container_of(ipcp, struct shmid_kernel, shm_perm); shm_try_destroy_orphaned()
627 * Called with shm_ids.rwsem and ipcp locked.
629 static inline int shm_security(struct kern_ipc_perm *ipcp, int shmflg) shm_security() argument
633 shp = container_of(ipcp, struct shmid_kernel, shm_perm); shm_security()
638 * Called with shm_ids.rwsem and ipcp locked.
640 static inline int shm_more_checks(struct kern_ipc_perm *ipcp, shm_more_checks() argument
645 shp = container_of(ipcp, struct shmid_kernel, shm_perm); shm_more_checks()
814 struct kern_ipc_perm *ipcp; shmctl_down() local
827 ipcp = ipcctl_pre_down_nolock(ns, &shm_ids(ns), shmid, cmd, shmctl_down()
829 if (IS_ERR(ipcp)) { shmctl_down()
830 err = PTR_ERR(ipcp); shmctl_down()
834 shp = container_of(ipcp, struct shmid_kernel, shm_perm); shmctl_down()
844 do_shm_rmid(ns, ipcp); shmctl_down()
848 err = ipc_update_perm(&shmid64.shm_perm, ipcp); shmctl_down()
H A Dmsg.c79 struct kern_ipc_perm *ipcp = ipc_obtain_object(&msg_ids(ns), id); msq_obtain_object() local
81 if (IS_ERR(ipcp)) msq_obtain_object()
82 return ERR_CAST(ipcp); msq_obtain_object()
84 return container_of(ipcp, struct msg_queue, q_perm); msq_obtain_object()
90 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&msg_ids(ns), id); msq_obtain_object_check() local
92 if (IS_ERR(ipcp)) msq_obtain_object_check()
93 return ERR_CAST(ipcp); msq_obtain_object_check()
95 return container_of(ipcp, struct msg_queue, q_perm); msq_obtain_object_check()
212 static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) freeque() argument
215 struct msg_queue *msq = container_of(ipcp, struct msg_queue, q_perm); freeque()
232 * Called with msg_ids.rwsem and ipcp locked.
234 static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) msg_security() argument
236 struct msg_queue *msq = container_of(ipcp, struct msg_queue, q_perm); msg_security()
342 struct kern_ipc_perm *ipcp; msgctl_down() local
355 ipcp = ipcctl_pre_down_nolock(ns, &msg_ids(ns), msqid, cmd, msgctl_down()
357 if (IS_ERR(ipcp)) { msgctl_down()
358 err = PTR_ERR(ipcp); msgctl_down()
362 msq = container_of(ipcp, struct msg_queue, q_perm); msgctl_down()
372 freeque(ns, ipcp); msgctl_down()
382 err = ipc_update_perm(&msqid64.msg_perm, ipcp); msgctl_down()
H A Dsem.c401 struct kern_ipc_perm *ipcp; sem_obtain_lock() local
404 ipcp = ipc_obtain_object(&sem_ids(ns), id); sem_obtain_lock()
405 if (IS_ERR(ipcp)) sem_obtain_lock()
406 return ERR_CAST(ipcp); sem_obtain_lock()
408 sma = container_of(ipcp, struct sem_array, sem_perm); sem_obtain_lock()
414 if (ipc_valid_object(ipcp)) sem_obtain_lock()
415 return container_of(ipcp, struct sem_array, sem_perm); sem_obtain_lock()
423 struct kern_ipc_perm *ipcp = ipc_obtain_object(&sem_ids(ns), id); sem_obtain_object() local
425 if (IS_ERR(ipcp)) sem_obtain_object()
426 return ERR_CAST(ipcp); sem_obtain_object()
428 return container_of(ipcp, struct sem_array, sem_perm); sem_obtain_object()
434 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&sem_ids(ns), id); sem_obtain_object_check() local
436 if (IS_ERR(ipcp)) sem_obtain_object_check()
437 return ERR_CAST(ipcp); sem_obtain_object_check()
439 return container_of(ipcp, struct sem_array, sem_perm); sem_obtain_object_check()
557 * Called with sem_ids.rwsem and ipcp locked.
559 static inline int sem_security(struct kern_ipc_perm *ipcp, int semflg) sem_security() argument
563 sma = container_of(ipcp, struct sem_array, sem_perm); sem_security()
568 * Called with sem_ids.rwsem and ipcp locked.
570 static inline int sem_more_checks(struct kern_ipc_perm *ipcp, sem_more_checks() argument
575 sma = container_of(ipcp, struct sem_array, sem_perm); sem_more_checks()
1087 static void freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) freeary() argument
1091 struct sem_array *sma = container_of(ipcp, struct sem_array, sem_perm); freeary()
1537 struct kern_ipc_perm *ipcp; semctl_down() local
1547 ipcp = ipcctl_pre_down_nolock(ns, &sem_ids(ns), semid, cmd, semctl_down()
1549 if (IS_ERR(ipcp)) { semctl_down()
1550 err = PTR_ERR(ipcp); semctl_down()
1554 sma = container_of(ipcp, struct sem_array, sem_perm); semctl_down()
1564 freeary(ns, ipcp); semctl_down()
1568 err = ipc_update_perm(&semid64.sem_perm, ipcp); semctl_down()
H A Dutil.h114 /* must be called with ipcp locked */
115 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flg);
163 static inline int ipc_checkid(struct kern_ipc_perm *ipcp, int uid) ipc_checkid() argument
165 return uid / SEQ_MULTIPLIER != ipcp->seq; ipc_checkid()
/linux-4.1.27/include/linux/
H A Daudit.h238 extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
254 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) audit_ipc_obj() argument
257 __audit_ipc_obj(ipcp); audit_ipc_obj()
395 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) audit_ipc_obj() argument
H A Dsecurity.h1148 * @ipcp contains the kernel IPC permission structure
1153 * @ipcp contains the kernel IPC permission structure.
1629 int (*ipc_permission) (struct kern_ipc_perm *ipcp, short flag);
1630 void (*ipc_getsecid) (struct kern_ipc_perm *ipcp, u32 *secid);
1906 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag);
1907 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid);
2536 static inline int security_ipc_permission(struct kern_ipc_perm *ipcp, security_ipc_permission() argument
2542 static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) security_ipc_getsecid() argument
/linux-4.1.27/security/
H A Dsecurity.c987 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) security_ipc_permission() argument
989 return security_ops->ipc_permission(ipcp, flag); security_ipc_permission()
992 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) security_ipc_getsecid() argument
994 security_ops->ipc_getsecid(ipcp, secid); security_ipc_getsecid()
H A Dcapability.c498 static int cap_ipc_permission(struct kern_ipc_perm *ipcp, short flag) cap_ipc_permission() argument
503 static void cap_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) cap_ipc_getsecid() argument
/linux-4.1.27/kernel/
H A Dauditsc.c2118 * @ipcp: ipc permissions
2121 void __audit_ipc_obj(struct kern_ipc_perm *ipcp) __audit_ipc_obj() argument
2124 context->ipc.uid = ipcp->uid; __audit_ipc_obj()
2125 context->ipc.gid = ipcp->gid; __audit_ipc_obj()
2126 context->ipc.mode = ipcp->mode; __audit_ipc_obj()
2128 security_ipc_getsecid(ipcp, &context->ipc.osid); __audit_ipc_obj()
/linux-4.1.27/security/selinux/
H A Dhooks.c5518 static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag) selinux_ipc_permission() argument
5531 return ipc_has_perm(ipcp, av); selinux_ipc_permission()
5534 static void selinux_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) selinux_ipc_getsecid() argument
5536 struct ipc_security_struct *isec = ipcp->security; selinux_ipc_getsecid()

Completed in 523 milliseconds