Lines Matching refs:filter
100 static int seccomp_check_filter(struct sock_filter *filter, unsigned int flen) in seccomp_check_filter() argument
104 struct sock_filter *ftest = &filter[pc]; in seccomp_check_filter()
178 struct seccomp_filter *f = ACCESS_ONCE(current->seccomp.filter); in seccomp_run_filters()
273 is_ancestor(thread->seccomp.filter, in seccomp_can_sync_threads()
274 caller->seccomp.filter))) in seccomp_can_sync_threads()
318 smp_store_release(&thread->seccomp.filter, in seccomp_sync_threads()
319 caller->seccomp.filter); in seccomp_sync_threads()
349 struct seccomp_filter *filter; in seccomp_prepare_filter() local
377 if (copy_from_user(fp, fprog->filter, fp_size)) in seccomp_prepare_filter()
397 filter = kzalloc(sizeof(struct seccomp_filter), in seccomp_prepare_filter()
399 if (!filter) in seccomp_prepare_filter()
402 filter->prog = bpf_prog_alloc(bpf_prog_size(new_len), __GFP_NOWARN); in seccomp_prepare_filter()
403 if (!filter->prog) in seccomp_prepare_filter()
406 ret = bpf_convert_filter(fp, fprog->len, filter->prog->insnsi, &new_len); in seccomp_prepare_filter()
411 atomic_set(&filter->usage, 1); in seccomp_prepare_filter()
412 filter->prog->len = new_len; in seccomp_prepare_filter()
414 bpf_prog_select_runtime(filter->prog); in seccomp_prepare_filter()
416 return filter; in seccomp_prepare_filter()
419 __bpf_prog_free(filter->prog); in seccomp_prepare_filter()
421 kfree(filter); in seccomp_prepare_filter()
437 struct seccomp_filter *filter = ERR_PTR(-EFAULT); in seccomp_prepare_user_filter() local
445 fprog.filter = compat_ptr(fprog32.filter); in seccomp_prepare_user_filter()
450 filter = seccomp_prepare_filter(&fprog); in seccomp_prepare_user_filter()
452 return filter; in seccomp_prepare_user_filter()
465 struct seccomp_filter *filter) in seccomp_attach_filter() argument
473 total_insns = filter->prog->len; in seccomp_attach_filter()
474 for (walker = current->seccomp.filter; walker; walker = walker->prev) in seccomp_attach_filter()
492 filter->prev = current->seccomp.filter; in seccomp_attach_filter()
493 current->seccomp.filter = filter; in seccomp_attach_filter()
505 struct seccomp_filter *orig = tsk->seccomp.filter; in get_seccomp_filter()
512 static inline void seccomp_filter_free(struct seccomp_filter *filter) in seccomp_filter_free() argument
514 if (filter) { in seccomp_filter_free()
515 bpf_prog_free(filter->prog); in seccomp_filter_free()
516 kfree(filter); in seccomp_filter_free()
523 struct seccomp_filter *orig = tsk->seccomp.filter; in put_seccomp_filter()
799 const char __user *filter) in seccomp_set_mode_filter() argument
810 prepared = seccomp_prepare_user_filter(filter); in seccomp_set_mode_filter()
844 const char __user *filter) in seccomp_set_mode_filter() argument
879 long prctl_set_seccomp(unsigned long seccomp_mode, char __user *filter) in prctl_set_seccomp() argument
896 uargs = filter; in prctl_set_seccomp()