]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes
authorMasami Hiramatsu <mhiramat@kernel.org>
Thu, 3 Dec 2020 04:50:37 +0000 (13:50 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Dec 2020 12:25:02 +0000 (13:25 +0100)
commit6bb78b3fff90fcf76991f689822ae58a4feee36d
treeb356d23412298a0995a45db5d3700ae74063b0ec
parent2498ae24602cdd33666cc305e16773c73c2ec252
x86/uprobes: Do not use prefixes.nbytes when looping over prefixes.bytes

commit 4e9a5ae8df5b3365183150f6df49e49dece80d8c upstream.

Since insn.prefixes.nbytes can be bigger than the size of
insn.prefixes.bytes[] when a prefix is repeated, the proper check must
be

  insn.prefixes.bytes[i] != 0 and i < 4

instead of using insn.prefixes.nbytes.

Introduce a for_each_insn_prefix() macro for this purpose. Debugged by
Kees Cook <keescook@chromium.org>.

 [ bp: Massage commit message, sync with the respective header in tools/
   and drop "we". ]

Fixes: 2b1444983508 ("uprobes, mm, x86: Add the ability to install and remove uprobes breakpoints")
Reported-by: syzbot+9b64b619f10f19d19a7c@syzkaller.appspotmail.com
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/160697103739.3146288.7437620795200799020.stgit@devnote2
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/include/asm/insn.h
arch/x86/kernel/uprobes.c
tools/objtool/arch/x86/include/asm/insn.h
tools/perf/util/intel-pt-decoder/insn.h