lkml.org 
[lkml]   [2017]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 03/96] s390/disassembler: add missing end marker for e7 table
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Heiko Carstens <heiko.carstens@de.ibm.com>

    commit 5c50538752af7968f53924b22dede8ed4ce4cb3b upstream.

    The e7 opcode table does not have an end marker. Hence when trying to
    find an unknown e7 instruction the code will access memory behind the
    table until it finds something that matches the opcode, or the kernel
    crashes, whatever comes first.

    This affects not only the in-kernel disassembler but also uprobes and
    kprobes which refuse to set a probe on unknown instructions, and
    therefore search the opcode tables to figure out if instructions are
    known or not.

    Fixes: 3585cb0280654 ("s390/disassembler: add vector instructions")
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/s390/kernel/dis.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/arch/s390/kernel/dis.c
    +++ b/arch/s390/kernel/dis.c
    @@ -1549,6 +1549,7 @@ static struct s390_insn opcode_e7[] = {
    { "vfsq", 0xce, INSTR_VRR_VV000MM },
    { "vfs", 0xe2, INSTR_VRR_VVV00MM },
    { "vftci", 0x4a, INSTR_VRI_VVIMM },
    + { "", 0, INSTR_INVALID }
    };

    static struct s390_insn opcode_eb[] = {

    \
     
     \ /
      Last update: 2017-11-28 13:31    [W:2.334 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site