module: propagate error in modules_open()
authorLeon Yu <chianglungyu@gmail.com>
Tue, 6 Mar 2018 15:16:24 +0000 (23:16 +0800)
committerJessica Yu <jeyu@kernel.org>
Thu, 8 Mar 2018 20:58:51 +0000 (21:58 +0100)
commit3f553b308bb004eb730da8e00a28150c157c7724
tree8d4b221ca45c45763e1d037b9a312cbff91414ed
parent661e50bc853209e41a5c14a290ca4decc43cbfd1
module: propagate error in modules_open()

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: 516fb7f2e73d ("/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: Leon Yu <chianglungyu@gmail.com>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
kernel/module.c