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
| ||
|
Date: Tue, 24 Mar 2020 16:31:39 +0100 From: Peter Zijlstra <peterz@...radead.org> To: tglx@...utronix.de, jpoimboe@...hat.com Cc: linux-kernel@...r.kernel.org, x86@...nel.org, peterz@...radead.org, mhiramat@...nel.org, mbenes@...e.cz, brgerst@...il.com Subject: [PATCH v3 26/26] objtool: Add STT_NOTYPE noinstr validation Make sure to also check STT_NOTYPE symbols for noinstr violations. Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org> --- tools/objtool/check.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -2563,7 +2563,7 @@ static int validate_symbol(struct objtoo return 1; } - if (sym->pfunc != sym || sym->alias != sym) + if ((sym->type == STT_FUNC && sym->pfunc != sym) || sym->alias != sym) return 0; insn = find_insn(file, sec, sym->offset); @@ -2610,6 +2610,23 @@ static int validate_section(struct objto warnings += validate_symbol(file, sec, func, &state); } + if (state.noinstr) { + /* + * In vmlinux mode we will not run validate_unwind_hints() by + * default which means we'll not otherwise visit STT_NOTYPE + * symbols. + * + * In case of --duplicate mode, insn->visited will avoid actual + * duplicate work being done. + */ + list_for_each_entry(func, &sec->symbol_list, list) { + if (func->type != STT_NOTYPE) + continue; + + warnings += validate_symbol(file, sec, func, &state); + } + } + return warnings; }
Powered by blists - more mailing lists