History

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

Leon Yu committed 8 years ago

Commit 3f553b31 parent 661e50b1 file · +1 −1Browse files

Showing the changes to kernel/module.c (1 of 1 file). Show all

Unified · Split

kernel/module.c+1−1
@@ -4228,7 +4228,7 @@ static int modules_open(struct inode *inode, struct file *file) · 4227 unmodified lines
4228 m->private = kallsyms_show_value() ? NULL : (void *)8ul;4228 m->private = kallsyms_show_value() ? NULL : (void *)8ul;
4229 }4229 }
4230 4230
4231 return 0;4231 return err;
4232}4232}
4233 4233
4234static const struct file_operations proc_modules_operations = {4234static const struct file_operations proc_modules_operations = {