summaryrefslogtreecommitdiff
path: root/crypto/rmd320.c
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2019-10-09 17:38:46 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-10 12:43:18 +0200
commit58ecf131e74620305175a7aa103f81350bb37570 (patch)
treea290f2aa14bd66ab3a87b01d5fbf05582eca747d /crypto/rmd320.c
parent726b55d0e22ca72c69c947af87785c830289ddbc (diff)
USB: ldusb: fix NULL-derefs on driver unbind
The driver was using its struct usb_interface pointer as an inverted disconnected flag, but was setting it to NULL before making sure all completion handlers had run. This could lead to a NULL-pointer dereference in a number of dev_dbg, dev_warn and dev_err statements in the completion handlers which relies on said pointer. Fix this by unconditionally stopping all I/O and preventing resubmissions by poisoning the interrupt URBs at disconnect and using a dedicated disconnected flag. This also makes sure that all I/O has completed by the time the disconnect callback returns. Fixes: 2824bd250f0b ("[PATCH] USB: add ldusb driver") Cc: stable <stable@vger.kernel.org> # 2.6.13 Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://lore.kernel.org/r/20191009153848.8664-4-johan@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'crypto/rmd320.c')
0 files changed, 0 insertions, 0 deletions