mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-03 11:13:56 +08:00
drbd: add module_put() on error path in drbd_proc_open()
If single_open() fails in drbd_proc_open(), module refcount is left incremented. The patch adds module_put() on the error path. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
607f25e56e
commit
193d01532a
@ -313,8 +313,14 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
|
|||||||
|
|
||||||
static int drbd_proc_open(struct inode *inode, struct file *file)
|
static int drbd_proc_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
if (try_module_get(THIS_MODULE))
|
int err;
|
||||||
return single_open(file, drbd_seq_show, PDE(inode)->data);
|
|
||||||
|
if (try_module_get(THIS_MODULE)) {
|
||||||
|
err = single_open(file, drbd_seq_show, PDE(inode)->data);
|
||||||
|
if (err)
|
||||||
|
module_put(THIS_MODULE);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user