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: Wed, 1 Nov 2017 13:56:40 -0700 From: tip-bot for Ricardo Neri <tipbot@...or.com> To: linux-tip-commits@...r.kernel.org Cc: ricardo.neri-calderon@...ux.intel.com, dave.hansen@...ux.intel.com, mhiramat@...nel.org, vbabka@...e.cz, shuah@...nel.org, slaoub@...il.com, ray.huang@....com, corbet@....net, luto@...nel.org, jslaby@...e.cz, adam.buchbinder@...il.com, liverlint@...il.com, adanhawthorn@...il.com, bp@...e.de, mst@...hat.com, mingo@...nel.org, lstoakes@...il.com, cmetcalf@...lanox.com, tglx@...utronix.de, joe@...ches.com, pbonzini@...hat.com, hpa@...or.com, qiaowei.ren@...el.com, akpm@...ux-foundation.org, peterz@...radead.org, paul.gortmaker@...driver.com, brgerst@...il.com, colin.king@...onical.com, linux-kernel@...r.kernel.org, ravi.v.shankar@...el.com Subject: [tip:x86/mpx] x86/mpx: Simplify handling of errors when computing linear addresses Commit-ID: b15d70df6e685912be8bbcb7557d277d48aa942c Gitweb: https://git.kernel.org/tip/b15d70df6e685912be8bbcb7557d277d48aa942c Author: Ricardo Neri <ricardo.neri-calderon@...ux.intel.com> AuthorDate: Fri, 27 Oct 2017 13:25:32 -0700 Committer: Thomas Gleixner <tglx@...utronix.de> CommitDate: Wed, 1 Nov 2017 21:50:08 +0100 x86/mpx: Simplify handling of errors when computing linear addresses When errors occur in the computation of the linear address, -1L is returned. Rather than having a separate return path for errors, the variable used to return the computed linear address can be initialized with the error value. Hence, only one return path is needed. This makes the function easier to read. While here, ensure that the error value is -1L, a 64-bit value, rather than -1, a 32-bit value. Suggested-by: Borislav Petkov <bp@...e.de> Signed-off-by: Ricardo Neri <ricardo.neri-calderon@...ux.intel.com> Signed-off-by: Thomas Gleixner <tglx@...utronix.de> Reviewed-by: Borislav Petkov <bp@...e.de> Cc: Adan Hawthorn <adanhawthorn@...il.com> Cc: "Michael S. Tsirkin" <mst@...hat.com> Cc: Peter Zijlstra <peterz@...radead.org> Cc: Dave Hansen <dave.hansen@...ux.intel.com> Cc: ricardo.neri@...el.com Cc: Paul Gortmaker <paul.gortmaker@...driver.com> Cc: Huang Rui <ray.huang@....com> Cc: Qiaowei Ren <qiaowei.ren@...el.com> Cc: Shuah Khan <shuah@...nel.org> Cc: Jonathan Corbet <corbet@....net> Cc: Jiri Slaby <jslaby@...e.cz> Cc: Nathan Howard <liverlint@...il.com> Cc: "Ravi V. Shankar" <ravi.v.shankar@...el.com> Cc: Chris Metcalf <cmetcalf@...lanox.com> Cc: Brian Gerst <brgerst@...il.com> Cc: Andy Lutomirski <luto@...nel.org> Cc: Colin Ian King <colin.king@...onical.com> Cc: Chen Yucong <slaoub@...il.com> Cc: Adam Buchbinder <adam.buchbinder@...il.com> Cc: Vlastimil Babka <vbabka@...e.cz> Cc: Lorenzo Stoakes <lstoakes@...il.com> Cc: Masami Hiramatsu <mhiramat@...nel.org> Cc: Joe Perches <joe@...ches.com> Cc: Paolo Bonzini <pbonzini@...hat.com> Cc: Andrew Morton <akpm@...ux-foundation.org> Link: https://lkml.kernel.org/r/1509135945-13762-6-git-send-email-ricardo.neri-calderon@linux.intel.com --- arch/x86/mm/mpx.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/arch/x86/mm/mpx.c b/arch/x86/mm/mpx.c index 9ceaa95..f4c48a0 100644 --- a/arch/x86/mm/mpx.c +++ b/arch/x86/mm/mpx.c @@ -138,7 +138,7 @@ static int get_reg_offset(struct insn *insn, struct pt_regs *regs, */ static void __user *mpx_get_addr_ref(struct insn *insn, struct pt_regs *regs) { - unsigned long addr, base, indx; + unsigned long addr = -1L, base, indx; int addr_offset, base_offset, indx_offset; insn_byte_t sib; @@ -149,17 +149,17 @@ static void __user *mpx_get_addr_ref(struct insn *insn, struct pt_regs *regs) if (X86_MODRM_MOD(insn->modrm.value) == 3) { addr_offset = get_reg_offset(insn, regs, REG_TYPE_RM); if (addr_offset < 0) - goto out_err; + goto out; addr = regs_get_register(regs, addr_offset); } else { if (insn->sib.nbytes) { base_offset = get_reg_offset(insn, regs, REG_TYPE_BASE); if (base_offset < 0) - goto out_err; + goto out; indx_offset = get_reg_offset(insn, regs, REG_TYPE_INDEX); if (indx_offset < 0) - goto out_err; + goto out; base = regs_get_register(regs, base_offset); indx = regs_get_register(regs, indx_offset); @@ -167,14 +167,13 @@ static void __user *mpx_get_addr_ref(struct insn *insn, struct pt_regs *regs) } else { addr_offset = get_reg_offset(insn, regs, REG_TYPE_RM); if (addr_offset < 0) - goto out_err; + goto out; addr = regs_get_register(regs, addr_offset); } addr += insn->displacement.value; } +out: return (void __user *)addr; -out_err: - return (void __user *)-1; } static int mpx_insn_decode(struct insn *insn,
Powered by blists - more mailing lists