• Leon Yu's avatar
    module: propagate error in modules_open() · 3f553b30
    Leon Yu authored
    otherwise kernel can oops later in seq_release() due to dereferencing null
    file->private_data which is only set if seq_open() succeeds.
    
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
    IP: seq_release+0xc/0x30
    Call Trace:
     close_pdeo+0x37/0xd0
     proc_reg_release+0x5d/0x60
     __fput+0x9d/0x1d0
     ____fput+0x9/0x10
     task_work_run+0x75/0x90
     do_exit+0x252/0xa00
     do_group_exit+0x36/0xb0
     SyS_exit_group+0xf/0x10
    
    Fixes: 516fb7f2 ("/proc/module: use the same logic as /proc/kallsyms for address exposure")
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable@vger.kernel.org # 4.15+
    Signed-off-by: default avatarLeon Yu <chianglungyu@gmail.com>
    Signed-off-by: default avatarJessica Yu <jeyu@kernel.org>
    3f553b30
module.c 112 KB