Thread (21 messages) 21 messages, 3 authors, 2012-03-09

Re: [PATCH 1/2] bluetooth: hci_ldisc: fix NULL-pointer dereference on tty_close

From: Johan Hovold <hidden>
Date: 2012-03-08 11:57:31
Also in: linux-bluetooth, lkml, stable

Hi Marcel,

On Wed, Mar 07, 2012 at 11:33:17AM -0800, Marcel Holtmann wrote:
Hi Johan,
quoted
Do not close protocol driver until device has been unregistered.

This fixes a race between tty_close and hci_dev_open which can result in
a NULL-pointer dereference.

The line discipline closes the protocol driver while we may still have
hci_dev_open sleeping on the req_lock mutex resulting in a NULL-pointer
dereference when lock is acquired and hci_init_req called.
[...]
what kernel version is this against? Our changes in bluetooth-next fixed
some of the destruct handling.
This is against the latest rc as it needs to be fixed in 3.3, but I
missed a dependency to bluetooth-next as you point out below.
Also hci_unregister_dev should be calling the destruct handler and thus
your change is now accessing hu but it got freed already.
You're right, my patch depends on 010666a126fc ("Bluetooth: Make
hci-destruct callback optional") and 797fe796c4 ("Bluetooth: uart-ldisc:
Fix memory leak and remove destruct cb") from bluetooth-next. 

But since the latter one fixes a memory leak it should have been marked
for stable as well as pushed to Linus for 3.3, right?

Thanks,
Johan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help