lkml.org 
[lkml]   [2018]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH resend] module: propagate error in modules_open()
+++ Leon Yu [06/03/18 23:16 +0800]:
>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>

Ah yeah, the error code was dropped in that commit.

Applied, thanks for the fix.

Jessica

>---
> kernel/module.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/kernel/module.c b/kernel/module.c
>index ad2d420024f6..e42764acedb4 100644
>--- a/kernel/module.c
>+++ b/kernel/module.c
>@@ -4228,7 +4228,7 @@ static int modules_open(struct inode *inode, struct file *file)
> m->private = kallsyms_show_value() ? NULL : (void *)8ul;
> }
>
>- return 0;
>+ return err;
> }
>
> static const struct file_operations proc_modules_operations = {
>--
>2.16.2

\
 
 \ /
  Last update: 2018-03-08 14:12    [W:0.031 / U:0.076 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site