aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorGavin Li <git@thegavinli.com>2019-08-04 16:50:44 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-05 17:27:52 +0200
commitc43f28dfdc4654e738aa6d3fd08a105b2bee758d (patch)
tree5c875723c4a6058d66bacab1d7ccf3059f391744 /drivers/usb
parentusb: yurex: Fix use-after-free in yurex_delete (diff)
downloadlinux-dev-c43f28dfdc4654e738aa6d3fd08a105b2bee758d.tar.xz
linux-dev-c43f28dfdc4654e738aa6d3fd08a105b2bee758d.zip
usb: usbfs: fix double-free of usb memory upon submiturb error
Upon an error within proc_do_submiturb(), dec_usb_memory_use_count() gets called once by the error handling tail and again by free_async(). Remove the first call. Signed-off-by: Gavin Li <git@thegavinli.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Cc: stable <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20190804235044.22327-1-gavinli@thegavinli.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/devio.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index b265ab5405f9..9063ede411ae 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -1812,8 +1812,6 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
return 0;
error:
- if (as && as->usbm)
- dec_usb_memory_use_count(as->usbm, &as->usbm->urb_use_count);
kfree(isopkt);
kfree(dr);
if (as)