diff options
| author | Manu Gautam <mgautam@codeaurora.org> | 2016-04-20 09:57:30 +0530 |
|---|---|---|
| committer | Hemant Kumar <hemantk@codeaurora.org> | 2016-08-12 09:58:08 -0700 |
| commit | 915bb5f040dcc395ca28cc1b9c95dd802eab6bd5 (patch) | |
| tree | 3d56a777d2dc0874701a9a0a949587974807f4fe /drivers/usb/gadget/function | |
| parent | 239e2be709b74d2bbcdbb8c37c9d1842837ef391 (diff) | |
USB: f_accessory: Fix crash if driver failed to initialize
If accessory driver setup fails then _acc_dev points to
freed memory and later drivers crashes on disconnect
due to invalid memory access. Mark _acc_dev only if
acc_setup is successful to prevent the crash.
Change-Id: Ica933a7cf710ff082c54db77f94f802b6832bedb
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Diffstat (limited to 'drivers/usb/gadget/function')
| -rw-r--r-- | drivers/usb/gadget/function/f_accessory.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c index 028bde7b0241..3908bc151c2b 100644 --- a/drivers/usb/gadget/function/f_accessory.c +++ b/drivers/usb/gadget/function/f_accessory.c @@ -1242,13 +1242,13 @@ static int acc_setup(void) INIT_DELAYED_WORK(&dev->start_work, acc_start_work); INIT_WORK(&dev->hid_work, acc_hid_work); - /* _acc_dev must be set before calling usb_gadget_register_driver */ - _acc_dev = dev; - ret = misc_register(&acc_device); if (ret) goto err; + /* _acc_dev must be set before calling usb_gadget_register_driver */ + _acc_dev = dev; + return 0; err: |
