lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <151427438796.32561.4235654585430455286.stgit@devbox> Date: Tue, 26 Dec 2017 16:46:28 +0900 From: Masami Hiramatsu <mhiramat@...nel.org> To: Alexei Starovoitov <ast@...com>, Josef Bacik <jbacik@...com> Cc: rostedt@...dmis.org, mingo@...hat.com, davem@...emloft.net, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, ast@...nel.org, kernel-team@...com, daniel@...earbox.net, linux-btrfs@...r.kernel.org, darrick.wong@...cle.com, mhiramat@...nel.org, Josef Bacik <josef@...icpanda.com>, Akinobu Mita <akinobu.mita@...il.com> Subject: [RFC PATCH bpf-next v2 0/4] Separate error injection table from kprobes Hi Josef and Alexei, Here are the 2nd version of patches to moving error injection table from kprobes. In this series I did a small fixes and add function-based fault injection. Here is the previous version: https://lkml.org/lkml/2017/12/22/554 There are 2 main reasons why I separate it from kprobes. - kprobes users can modify execution path not only at error-injection whitelist functions but also other functions. I don't like to suggest user that such limitation is from kprobes itself. - This error injection information is also useful for ftrace (function-hook) and livepatch. It should not be limited by CONFIG_KPROBES. So I introduced CONFIG_FUNCTION_ERROR_INJECTION for this feature. Also CONFIG_FAIL_FUNCTION is added, which provides function-based error injection interface via debugfs following fault-injection framework. See [4/4]. Any thoughts? BTW, I think we should add an error-range description in ALLOW_ERROR_INJECTION() macro. If user sets a success return value and override it by mistake, caller must break data or cause kernel panic. Thank you, --- Masami Hiramatsu (4): tracing/kprobe: bpf: Check error injectable event is on function entry tracing/kprobe: bpf: Compare instruction pointer with original one error-injection: Separate error-injection from kprobe error-injection: Support fault injection framework Documentation/fault-injection/fault-injection.txt | 5 + arch/Kconfig | 2 arch/x86/Kconfig | 2 arch/x86/include/asm/error-injection.h | 12 + arch/x86/kernel/kprobes/ftrace.c | 14 - arch/x86/lib/Makefile | 2 arch/x86/lib/error-inject.c | 19 ++ fs/btrfs/disk-io.c | 2 fs/btrfs/free-space-cache.c | 2 include/asm-generic/error-injection.h | 20 ++ include/asm-generic/vmlinux.lds.h | 14 + include/linux/bpf.h | 12 - include/linux/error-injection.h | 21 ++ include/linux/kprobes.h | 1 include/linux/module.h | 6 - kernel/Makefile | 1 kernel/fail_function.c | 169 ++++++++++++++++++ kernel/kprobes.c | 163 ----------------- kernel/module.c | 8 - kernel/trace/Kconfig | 4 kernel/trace/bpf_trace.c | 9 - kernel/trace/trace_kprobe.c | 32 +-- kernel/trace/trace_probe.h | 12 + lib/Kconfig.debug | 14 + lib/Makefile | 1 lib/error-inject.c | 198 +++++++++++++++++++++ 26 files changed, 506 insertions(+), 239 deletions(-) create mode 100644 arch/x86/include/asm/error-injection.h create mode 100644 arch/x86/lib/error-inject.c create mode 100644 include/asm-generic/error-injection.h create mode 100644 include/linux/error-injection.h create mode 100644 kernel/fail_function.c create mode 100644 lib/error-inject.c -- Masami Hiramatsu (Linaro)
Powered by blists - more mailing lists