Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
Needn't call 'rfcomm_dlc_put' here, because 'rfcomm_dlc_exists' didn't increase dlc->refcnt. Reported-by: syzbot+4496e82090657320efc6@syzkaller.appspotmail.com Signed-off-by: Qiujun Huang <hqjagain@gmail.com> Suggested-by: Hillf Danton <hdanton@sina.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
4be5ca67d5
commit
71811cac85
|
@ -413,10 +413,8 @@ static int __rfcomm_create_dev(struct sock *sk, void __user *arg)
|
||||||
dlc = rfcomm_dlc_exists(&req.src, &req.dst, req.channel);
|
dlc = rfcomm_dlc_exists(&req.src, &req.dst, req.channel);
|
||||||
if (IS_ERR(dlc))
|
if (IS_ERR(dlc))
|
||||||
return PTR_ERR(dlc);
|
return PTR_ERR(dlc);
|
||||||
else if (dlc) {
|
if (dlc)
|
||||||
rfcomm_dlc_put(dlc);
|
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
}
|
|
||||||
dlc = rfcomm_dlc_alloc(GFP_KERNEL);
|
dlc = rfcomm_dlc_alloc(GFP_KERNEL);
|
||||||
if (!dlc)
|
if (!dlc)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Reference in New Issue