summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2019-10-09 17:38:48 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-10 14:24:06 +0200
commitaafb00a977cf7d81821f7c9d12e04c558c22dc3c (patch)
tree195a9516da77f8fb797ec52fbd278cf3d68e0a72 /drivers/watchdog
parentebb2fe57a51c630e0f852becbbdd295ad5d60514 (diff)
downloadlinux-aafb00a977cf7d81821f7c9d12e04c558c22dc3c.tar.bz2
USB: yurex: fix NULL-derefs on disconnect
The driver was using its struct usb_interface pointer as an inverted disconnected flag, but was setting it to NULL without making sure all code paths that used it were done with it. Before commit ef61eb43ada6 ("USB: yurex: Fix protection fault after device removal") this included the interrupt-in completion handler, but there are further accesses in dev_err and dev_dbg statements in yurex_write() and the driver-data destructor (sic!). Fix this by unconditionally stopping also the control URB at disconnect and by using a dedicated disconnected flag. Note that we need to take a reference to the struct usb_interface to avoid a use-after-free in the destructor whenever the device was disconnected while the character device was still open. Fixes: aadd6472d904 ("USB: yurex.c: remove dbg() usage") Fixes: 45714104b9e8 ("USB: yurex.c: remove err() usage") Cc: stable <stable@vger.kernel.org> # 3.5: ef61eb43ada6 Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20191009153848.8664-6-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/watchdog')
0 files changed, 0 insertions, 0 deletions