Lines Matching refs:filter
128 static int seccomp_check_filter(struct sock_filter *filter, unsigned int flen) in seccomp_check_filter() argument
132 struct sock_filter *ftest = &filter[pc]; in seccomp_check_filter()
206 struct seccomp_filter *f = ACCESS_ONCE(current->seccomp.filter); in seccomp_run_filters()
295 is_ancestor(thread->seccomp.filter, in seccomp_can_sync_threads()
296 caller->seccomp.filter))) in seccomp_can_sync_threads()
340 smp_store_release(&thread->seccomp.filter, in seccomp_sync_threads()
341 caller->seccomp.filter); in seccomp_sync_threads()
371 struct seccomp_filter *filter; in seccomp_prepare_filter() local
380 for (filter = current->seccomp.filter; filter; filter = filter->prev) in seccomp_prepare_filter()
381 total_insns += filter->len + 4; /* include a 4 instr penalty */ in seccomp_prepare_filter()
397 filter = kzalloc(sizeof(struct seccomp_filter) + fp_size, in seccomp_prepare_filter()
399 if (!filter) in seccomp_prepare_filter()
401 atomic_set(&filter->usage, 1); in seccomp_prepare_filter()
402 filter->len = fprog->len; in seccomp_prepare_filter()
406 if (copy_from_user(filter->insns, fprog->filter, fp_size)) in seccomp_prepare_filter()
410 ret = sk_chk_filter(filter->insns, filter->len); in seccomp_prepare_filter()
415 ret = seccomp_check_filter(filter->insns, filter->len); in seccomp_prepare_filter()
419 return filter; in seccomp_prepare_filter()
422 kfree(filter); in seccomp_prepare_filter()
436 struct seccomp_filter *filter = ERR_PTR(-EFAULT); in seccomp_prepare_user_filter() local
444 fprog.filter = compat_ptr(fprog32.filter); in seccomp_prepare_user_filter()
449 filter = seccomp_prepare_filter(&fprog); in seccomp_prepare_user_filter()
451 return filter; in seccomp_prepare_user_filter()
464 struct seccomp_filter *filter) in seccomp_attach_filter() argument
472 total_insns = filter->len; in seccomp_attach_filter()
473 for (walker = current->seccomp.filter; walker; walker = walker->prev) in seccomp_attach_filter()
491 filter->prev = current->seccomp.filter; in seccomp_attach_filter()
492 current->seccomp.filter = filter; in seccomp_attach_filter()
504 struct seccomp_filter *orig = tsk->seccomp.filter; in get_seccomp_filter()
511 static inline void seccomp_filter_free(struct seccomp_filter *filter) in seccomp_filter_free() argument
513 if (filter) { in seccomp_filter_free()
514 kfree(filter); in seccomp_filter_free()
521 struct seccomp_filter *orig = tsk->seccomp.filter; in put_seccomp_filter()
711 const char __user *filter) in seccomp_set_mode_filter() argument
722 prepared = seccomp_prepare_user_filter(filter); in seccomp_set_mode_filter()
756 const char __user *filter) in seccomp_set_mode_filter() argument
791 long prctl_set_seccomp(unsigned long seccomp_mode, char __user *filter) in prctl_set_seccomp() argument
808 uargs = filter; in prctl_set_seccomp()