value = bpf_map_lookup_elem(&array, &key); if (value)
*value = 0;
value = bpf_map_lookup_elem(&hash, &key); if (value)
*value = 0;
value = bpf_map_lookup_elem(&lru_hash, &key); if (value)
*value = 0;
value = bpf_map_lookup_elem(&percpu_array, &key); if (value)
*value = 0;
value = bpf_map_lookup_elem(&percpu_hash, &key); if (value)
*value = 0;
value = bpf_map_lookup_elem(&lru_percpu_hash, &key); if (value)
*value = 0;
inner_map = bpf_map_lookup_elem(&outer_arr, &key); if (inner_map) {
value = bpf_map_lookup_elem(inner_map, &key); if (value)
*value = 0;
}
inner_map = bpf_map_lookup_elem(&outer_hash, &key); if (inner_map) {
value = bpf_map_lookup_elem(inner_map, &key); if (value)
*value = 0;
}
return 0;
}
SEC("lsm/task_free") /* lsm/ is ok, lsm.s/ fails */ int BPF_PROG(test_task_free, struct task_struct *task)
{ return 0;
}
int copy_test = 0;
SEC("fentry.s/" SYS_PREFIX "sys_setdomainname") int BPF_PROG(test_sys_setdomainname, struct pt_regs *regs)
{ void *ptr = (void *)PT_REGS_PARM1_SYSCALL(regs); int len = PT_REGS_PARM2_SYSCALL(regs); int buf = 0; long ret;
ret = bpf_copy_from_user(&buf, sizeof(buf), ptr); if (len == -2 && ret == 0 && buf == 1234)
copy_test++; if (len == -3 && ret == -EFAULT)
copy_test++; if (len == -4 && ret == -EFAULT)
copy_test++; return 0;
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.