提交 06739a8a 编写于 作者: S Sebastian Ott 提交者: Martin Schwidefsky

[S390] cio: fix double free after failed device initialization

If io_subchannel_initialize_dev fails it will release the only
reference to the ccw device therefore the caller should not
kfree this device since this is done in the release function.
Signed-off-by: NSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 3edf2fb9
...@@ -772,11 +772,9 @@ static struct ccw_device * io_subchannel_create_ccwdev(struct subchannel *sch) ...@@ -772,11 +772,9 @@ static struct ccw_device * io_subchannel_create_ccwdev(struct subchannel *sch)
cdev = io_subchannel_allocate_dev(sch); cdev = io_subchannel_allocate_dev(sch);
if (!IS_ERR(cdev)) { if (!IS_ERR(cdev)) {
ret = io_subchannel_initialize_dev(sch, cdev); ret = io_subchannel_initialize_dev(sch, cdev);
if (ret) { if (ret)
kfree(cdev);
cdev = ERR_PTR(ret); cdev = ERR_PTR(ret);
} }
}
return cdev; return cdev;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册