Lines Matching refs:new

208 	struct cred *new;  in cred_alloc_blank()  local
210 new = kmem_cache_zalloc(cred_jar, GFP_KERNEL); in cred_alloc_blank()
211 if (!new) in cred_alloc_blank()
214 atomic_set(&new->usage, 1); in cred_alloc_blank()
216 new->magic = CRED_MAGIC; in cred_alloc_blank()
219 if (security_cred_alloc_blank(new, GFP_KERNEL) < 0) in cred_alloc_blank()
222 return new; in cred_alloc_blank()
225 abort_creds(new); in cred_alloc_blank()
247 struct cred *new; in prepare_creds() local
251 new = kmem_cache_alloc(cred_jar, GFP_KERNEL); in prepare_creds()
252 if (!new) in prepare_creds()
255 kdebug("prepare_creds() alloc %p", new); in prepare_creds()
258 memcpy(new, old, sizeof(struct cred)); in prepare_creds()
260 atomic_set(&new->usage, 1); in prepare_creds()
261 set_cred_subscribers(new, 0); in prepare_creds()
262 get_group_info(new->group_info); in prepare_creds()
263 get_uid(new->user); in prepare_creds()
264 get_user_ns(new->user_ns); in prepare_creds()
267 key_get(new->session_keyring); in prepare_creds()
268 key_get(new->process_keyring); in prepare_creds()
269 key_get(new->thread_keyring); in prepare_creds()
270 key_get(new->request_key_auth); in prepare_creds()
274 new->security = NULL; in prepare_creds()
277 if (security_prepare_creds(new, old, GFP_KERNEL) < 0) in prepare_creds()
279 validate_creds(new); in prepare_creds()
280 return new; in prepare_creds()
283 abort_creds(new); in prepare_creds()
294 struct cred *new; in prepare_exec_creds() local
296 new = prepare_creds(); in prepare_exec_creds()
297 if (!new) in prepare_exec_creds()
298 return new; in prepare_exec_creds()
302 key_put(new->thread_keyring); in prepare_exec_creds()
303 new->thread_keyring = NULL; in prepare_exec_creds()
306 key_put(new->process_keyring); in prepare_exec_creds()
307 new->process_keyring = NULL; in prepare_exec_creds()
310 return new; in prepare_exec_creds()
324 struct cred *new; in copy_creds() local
343 new = prepare_creds(); in copy_creds()
344 if (!new) in copy_creds()
348 ret = create_user_ns(new); in copy_creds()
356 if (new->thread_keyring) { in copy_creds()
357 key_put(new->thread_keyring); in copy_creds()
358 new->thread_keyring = NULL; in copy_creds()
360 install_thread_keyring_to_cred(new); in copy_creds()
367 key_put(new->process_keyring); in copy_creds()
368 new->process_keyring = NULL; in copy_creds()
372 atomic_inc(&new->user->processes); in copy_creds()
373 p->cred = p->real_cred = get_cred(new); in copy_creds()
374 alter_cred_subscribers(new, 2); in copy_creds()
375 validate_creds(new); in copy_creds()
379 put_cred(new); in copy_creds()
422 int commit_creds(struct cred *new) in commit_creds() argument
427 kdebug("commit_creds(%p{%d,%d})", new, in commit_creds()
428 atomic_read(&new->usage), in commit_creds()
429 read_cred_subscribers(new)); in commit_creds()
435 validate_creds(new); in commit_creds()
437 BUG_ON(atomic_read(&new->usage) < 1); in commit_creds()
439 get_cred(new); /* we will require a ref for the subj creds too */ in commit_creds()
442 if (!uid_eq(old->euid, new->euid) || in commit_creds()
443 !gid_eq(old->egid, new->egid) || in commit_creds()
444 !uid_eq(old->fsuid, new->fsuid) || in commit_creds()
445 !gid_eq(old->fsgid, new->fsgid) || in commit_creds()
446 !cred_cap_issubset(old, new)) { in commit_creds()
454 if (!uid_eq(new->fsuid, old->fsuid)) in commit_creds()
456 if (!gid_eq(new->fsgid, old->fsgid)) in commit_creds()
463 alter_cred_subscribers(new, 2); in commit_creds()
464 if (new->user != old->user) in commit_creds()
465 atomic_inc(&new->user->processes); in commit_creds()
466 rcu_assign_pointer(task->real_cred, new); in commit_creds()
467 rcu_assign_pointer(task->cred, new); in commit_creds()
468 if (new->user != old->user) in commit_creds()
473 if (!uid_eq(new->uid, old->uid) || in commit_creds()
474 !uid_eq(new->euid, old->euid) || in commit_creds()
475 !uid_eq(new->suid, old->suid) || in commit_creds()
476 !uid_eq(new->fsuid, old->fsuid)) in commit_creds()
479 if (!gid_eq(new->gid, old->gid) || in commit_creds()
480 !gid_eq(new->egid, old->egid) || in commit_creds()
481 !gid_eq(new->sgid, old->sgid) || in commit_creds()
482 !gid_eq(new->fsgid, old->fsgid)) in commit_creds()
499 void abort_creds(struct cred *new) in abort_creds() argument
501 kdebug("abort_creds(%p{%d,%d})", new, in abort_creds()
502 atomic_read(&new->usage), in abort_creds()
503 read_cred_subscribers(new)); in abort_creds()
506 BUG_ON(read_cred_subscribers(new) != 0); in abort_creds()
508 BUG_ON(atomic_read(&new->usage) < 1); in abort_creds()
509 put_cred(new); in abort_creds()
520 const struct cred *override_creds(const struct cred *new) in override_creds() argument
524 kdebug("override_creds(%p{%d,%d})", new, in override_creds()
525 atomic_read(&new->usage), in override_creds()
526 read_cred_subscribers(new)); in override_creds()
529 validate_creds(new); in override_creds()
530 get_cred(new); in override_creds()
531 alter_cred_subscribers(new, 1); in override_creds()
532 rcu_assign_pointer(current->cred, new); in override_creds()
597 struct cred *new; in prepare_kernel_cred() local
599 new = kmem_cache_alloc(cred_jar, GFP_KERNEL); in prepare_kernel_cred()
600 if (!new) in prepare_kernel_cred()
603 kdebug("prepare_kernel_cred() alloc %p", new); in prepare_kernel_cred()
612 *new = *old; in prepare_kernel_cred()
613 atomic_set(&new->usage, 1); in prepare_kernel_cred()
614 set_cred_subscribers(new, 0); in prepare_kernel_cred()
615 get_uid(new->user); in prepare_kernel_cred()
616 get_user_ns(new->user_ns); in prepare_kernel_cred()
617 get_group_info(new->group_info); in prepare_kernel_cred()
620 new->session_keyring = NULL; in prepare_kernel_cred()
621 new->process_keyring = NULL; in prepare_kernel_cred()
622 new->thread_keyring = NULL; in prepare_kernel_cred()
623 new->request_key_auth = NULL; in prepare_kernel_cred()
624 new->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; in prepare_kernel_cred()
628 new->security = NULL; in prepare_kernel_cred()
630 if (security_prepare_creds(new, old, GFP_KERNEL) < 0) in prepare_kernel_cred()
634 validate_creds(new); in prepare_kernel_cred()
635 return new; in prepare_kernel_cred()
638 put_cred(new); in prepare_kernel_cred()
652 int set_security_override(struct cred *new, u32 secid) in set_security_override() argument
654 return security_kernel_act_as(new, secid); in set_security_override()
668 int set_security_override_from_ctx(struct cred *new, const char *secctx) in set_security_override_from_ctx() argument
677 return set_security_override(new, secid); in set_security_override_from_ctx()
690 int set_create_files_as(struct cred *new, struct inode *inode) in set_create_files_as() argument
692 new->fsuid = inode->i_uid; in set_create_files_as()
693 new->fsgid = inode->i_gid; in set_create_files_as()
694 return security_kernel_create_files_as(new, inode); in set_create_files_as()