/kernel/linux/linux-5.10/ipc/ |
H A D | util.c | 173 struct kern_ipc_perm *ipcp; in ipc_findkey() local 175 ipcp = rhashtable_lookup_fast(&ids->key_ht, &key, in ipc_findkey() 177 if (!ipcp) in ipc_findkey() 181 ipc_lock_object(ipcp); in ipc_findkey() 182 return ipcp; in ipc_findkey() 352 * @ipcp: ipc permission set 362 * It is called with ipc_ids.rwsem and ipcp->lock held. 365 struct kern_ipc_perm *ipcp, in ipc_check_perms() 371 if (ipcperms(ns, ipcp, params->flg)) in ipc_check_perms() 374 err = ops->associate(ipcp, param in ipc_check_perms() 364 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 399 struct kern_ipc_perm *ipcp; ipcget_public() local 446 ipc_kht_remove(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_kht_remove() argument 461 ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_rmid() argument 488 ipc_set_key_private(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_set_key_private() argument 519 ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag) ipcperms() argument 694 struct kern_ipc_perm *ipcp; ipcctl_obtain_check() local [all...] |
H A D | shm.c | 122 static void do_shm_rmid(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) in do_shm_rmid() argument 126 shp = container_of(ipcp, struct shmid_kernel, shm_perm); in do_shm_rmid() 168 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&shm_ids(ns), id); in shm_obtain_object() local 170 if (IS_ERR(ipcp)) in shm_obtain_object() 171 return ERR_CAST(ipcp); in shm_obtain_object() 173 return container_of(ipcp, struct shmid_kernel, shm_perm); in shm_obtain_object() 178 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&shm_ids(ns), id); in shm_obtain_object_check() local 180 if (IS_ERR(ipcp)) in shm_obtain_object_check() 181 return ERR_CAST(ipcp); in shm_obtain_object_check() 183 return container_of(ipcp, struc in shm_obtain_object_check() 192 struct kern_ipc_perm *ipcp; shm_lock() local 222 shm_lock_by_ptr(struct shmid_kernel *ipcp) shm_lock_by_ptr() argument 398 struct kern_ipc_perm *ipcp = p; shm_try_destroy_orphaned() local 810 shm_more_checks(struct kern_ipc_perm *ipcp, struct ipc_params *params) shm_more_checks() argument 989 struct kern_ipc_perm *ipcp; shmctl_down() local 1838 struct kern_ipc_perm *ipcp = it; sysvipc_shm_proc_show() local [all...] |
H A D | msg.c | 103 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&msg_ids(ns), id); in msq_obtain_object() local 105 if (IS_ERR(ipcp)) in msq_obtain_object() 106 return ERR_CAST(ipcp); in msq_obtain_object() 108 return container_of(ipcp, struct msg_queue, q_perm); in msq_obtain_object() 114 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&msg_ids(ns), id); in msq_obtain_object_check() local 116 if (IS_ERR(ipcp)) in msq_obtain_object_check() 117 return ERR_CAST(ipcp); in msq_obtain_object_check() 119 return container_of(ipcp, struct msg_queue, q_perm); in msq_obtain_object_check() 272 static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) 277 struct msg_queue *msq = container_of(ipcp, struc in __releases() 403 struct kern_ipc_perm *ipcp; msgctl_down() local 1325 struct kern_ipc_perm *ipcp = it; sysvipc_msg_proc_show() local [all...] |
H A D | sem.c | 477 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&sem_ids(ns), id); in sem_obtain_object() local 479 if (IS_ERR(ipcp)) in sem_obtain_object() 480 return ERR_CAST(ipcp); in sem_obtain_object() 482 return container_of(ipcp, struct sem_array, sem_perm); in sem_obtain_object() 488 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&sem_ids(ns), id); in sem_obtain_object_check() local 490 if (IS_ERR(ipcp)) in sem_obtain_object_check() 491 return ERR_CAST(ipcp); in sem_obtain_object_check() 493 return container_of(ipcp, struct sem_array, sem_perm); in sem_obtain_object_check() 586 * Called with sem_ids.rwsem and ipcp locked. 588 static int sem_more_checks(struct kern_ipc_perm *ipcp, struc argument 1141 freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) freeary() argument 1605 struct kern_ipc_perm *ipcp; semctl_down() local 2433 struct kern_ipc_perm *ipcp = it; sysvipc_sem_proc_show() local [all...] |
H A D | util.h | 141 /* must be called with ipcp locked */ 142 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flg); 201 static inline int ipc_checkid(struct kern_ipc_perm *ipcp, int id) in ipc_checkid() argument 203 return ipcid_to_seqx(id) != ipcp->seq; in ipc_checkid()
|
/kernel/linux/linux-6.6/ipc/ |
H A D | util.c | 174 struct kern_ipc_perm *ipcp; in ipc_findkey() local 176 ipcp = rhashtable_lookup_fast(&ids->key_ht, &key, in ipc_findkey() 178 if (!ipcp) in ipc_findkey() 182 ipc_lock_object(ipcp); in ipc_findkey() 183 return ipcp; in ipc_findkey() 353 * @ipcp: ipc permission set 363 * It is called with ipc_ids.rwsem and ipcp->lock held. 366 struct kern_ipc_perm *ipcp, in ipc_check_perms() 372 if (ipcperms(ns, ipcp, params->flg)) in ipc_check_perms() 375 err = ops->associate(ipcp, param in ipc_check_perms() 365 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 400 struct kern_ipc_perm *ipcp; ipcget_public() local 447 ipc_kht_remove(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_kht_remove() argument 497 ipc_rmid(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_rmid() argument 522 ipc_set_key_private(struct ipc_ids *ids, struct kern_ipc_perm *ipcp) ipc_set_key_private() argument 553 ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag) ipcperms() argument 728 struct kern_ipc_perm *ipcp; ipcctl_obtain_check() local [all...] |
H A D | shm.c | 122 static void do_shm_rmid(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) in do_shm_rmid() argument 126 shp = container_of(ipcp, struct shmid_kernel, shm_perm); in do_shm_rmid() 168 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&shm_ids(ns), id); in shm_obtain_object() local 170 if (IS_ERR(ipcp)) in shm_obtain_object() 171 return ERR_CAST(ipcp); in shm_obtain_object() 173 return container_of(ipcp, struct shmid_kernel, shm_perm); in shm_obtain_object() 178 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&shm_ids(ns), id); in shm_obtain_object_check() local 180 if (IS_ERR(ipcp)) in shm_obtain_object_check() 181 return ERR_CAST(ipcp); in shm_obtain_object_check() 183 return container_of(ipcp, struc in shm_obtain_object_check() 192 struct kern_ipc_perm *ipcp; shm_lock() local 222 shm_lock_by_ptr(struct shmid_kernel *ipcp) shm_lock_by_ptr() argument 411 struct kern_ipc_perm *ipcp = p; shm_try_destroy_orphaned() local 820 shm_more_checks(struct kern_ipc_perm *ipcp, struct ipc_params *params) shm_more_checks() argument 999 struct kern_ipc_perm *ipcp; shmctl_down() local 1847 struct kern_ipc_perm *ipcp = it; sysvipc_shm_proc_show() local [all...] |
H A D | msg.c | 104 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&msg_ids(ns), id); in msq_obtain_object() local 106 if (IS_ERR(ipcp)) in msq_obtain_object() 107 return ERR_CAST(ipcp); in msq_obtain_object() 109 return container_of(ipcp, struct msg_queue, q_perm); in msq_obtain_object() 115 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&msg_ids(ns), id); in msq_obtain_object_check() local 117 if (IS_ERR(ipcp)) in msq_obtain_object_check() 118 return ERR_CAST(ipcp); in msq_obtain_object_check() 120 return container_of(ipcp, struct msg_queue, q_perm); in msq_obtain_object_check() 273 static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) 278 struct msg_queue *msq = container_of(ipcp, struc in __releases() 404 struct kern_ipc_perm *ipcp; msgctl_down() local 1345 struct kern_ipc_perm *ipcp = it; sysvipc_msg_proc_show() local [all...] |
H A D | sem.c | 480 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&sem_ids(ns), id); in sem_obtain_object() local 482 if (IS_ERR(ipcp)) in sem_obtain_object() 483 return ERR_CAST(ipcp); in sem_obtain_object() 485 return container_of(ipcp, struct sem_array, sem_perm); in sem_obtain_object() 491 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&sem_ids(ns), id); in sem_obtain_object_check() local 493 if (IS_ERR(ipcp)) in sem_obtain_object_check() 494 return ERR_CAST(ipcp); in sem_obtain_object_check() 496 return container_of(ipcp, struct sem_array, sem_perm); in sem_obtain_object_check() 589 * Called with sem_ids.rwsem and ipcp locked. 591 static int sem_more_checks(struct kern_ipc_perm *ipcp, struc argument 1143 freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) freeary() argument 1606 struct kern_ipc_perm *ipcp; semctl_down() local 2452 struct kern_ipc_perm *ipcp = it; sysvipc_sem_proc_show() local [all...] |
H A D | util.h | 139 /* must be called with ipcp locked */ 140 int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flg); 202 static inline int ipc_checkid(struct kern_ipc_perm *ipcp, int id) in ipc_checkid() argument 204 return ipcid_to_seqx(id) != ipcp->seq; in ipc_checkid()
|
/kernel/linux/linux-5.10/include/linux/ |
H A D | audit.h | 392 extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); 414 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) in audit_ipc_obj() argument 417 __audit_ipc_obj(ipcp); in audit_ipc_obj() 610 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) in audit_ipc_obj() argument
|
H A D | security.h | 426 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag); 427 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid); 1160 static inline int security_ipc_permission(struct kern_ipc_perm *ipcp, in security_ipc_permission() argument 1166 static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in security_ipc_getsecid() argument
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | audit.h | 403 extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); 426 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) in audit_ipc_obj() argument 429 __audit_ipc_obj(ipcp); in audit_ipc_obj() 630 static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) in audit_ipc_obj() argument
|
H A D | security.h | 451 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag); 452 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid); 1243 static inline int security_ipc_permission(struct kern_ipc_perm *ipcp, in security_ipc_permission() argument 1249 static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in security_ipc_getsecid() argument
|
/kernel/linux/linux-5.10/security/ |
H A D | security.c | 1864 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) in security_ipc_permission() argument 1866 return call_int_hook(ipc_permission, 0, ipcp, flag); in security_ipc_permission() 1869 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in security_ipc_getsecid() argument 1872 call_void_hook(ipc_getsecid, ipcp, secid); in security_ipc_getsecid()
|
/kernel/linux/linux-5.10/kernel/ |
H A D | auditsc.c | 2366 * @ipcp: ipc permissions 2369 void __audit_ipc_obj(struct kern_ipc_perm *ipcp) in __audit_ipc_obj() argument 2372 context->ipc.uid = ipcp->uid; in __audit_ipc_obj() 2373 context->ipc.gid = ipcp->gid; in __audit_ipc_obj() 2374 context->ipc.mode = ipcp->mode; in __audit_ipc_obj() 2376 security_ipc_getsecid(ipcp, &context->ipc.osid); in __audit_ipc_obj()
|
/kernel/linux/linux-6.6/kernel/ |
H A D | auditsc.c | 2624 * @ipcp: ipc permissions 2627 void __audit_ipc_obj(struct kern_ipc_perm *ipcp) in __audit_ipc_obj() argument 2631 context->ipc.uid = ipcp->uid; in __audit_ipc_obj() 2632 context->ipc.gid = ipcp->gid; in __audit_ipc_obj() 2633 context->ipc.mode = ipcp->mode; in __audit_ipc_obj() 2635 security_ipc_getsecid(ipcp, &context->ipc.osid); in __audit_ipc_obj()
|
/kernel/linux/linux-6.6/security/ |
H A D | security.c | 3476 * @ipcp: ipc permission structure 3483 int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) in security_ipc_permission() argument 3485 return call_int_hook(ipc_permission, 0, ipcp, flag); in security_ipc_permission() 3490 * @ipcp: ipc permission structure 3496 void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in security_ipc_getsecid() argument 3499 call_void_hook(ipc_getsecid, ipcp, secid); in security_ipc_getsecid()
|
/kernel/linux/linux-5.10/security/selinux/ |
H A D | hooks.c | 6308 static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag) in selinux_ipc_permission() argument 6321 return ipc_has_perm(ipcp, av); in selinux_ipc_permission() 6324 static void selinux_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in selinux_ipc_getsecid() argument 6326 struct ipc_security_struct *isec = selinux_ipc(ipcp); in selinux_ipc_getsecid()
|
/kernel/linux/linux-6.6/security/selinux/ |
H A D | hooks.c | 6288 static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag) in selinux_ipc_permission() argument 6301 return ipc_has_perm(ipcp, av); in selinux_ipc_permission() 6304 static void selinux_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) in selinux_ipc_getsecid() argument 6306 struct ipc_security_struct *isec = selinux_ipc(ipcp); in selinux_ipc_getsecid()
|