usb: cdc_acm: Do not leak URB buffers
authorRomain Izard <romain.izard.pro@gmail.com>
Thu, 20 Sep 2018 14:49:04 +0000 (16:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 2 Oct 2018 00:59:02 +0000 (17:59 -0700)
commitf2924d4b16ae138c2de6a0e73f526fb638330858
tree2236f1758b03e710e950ee39bbb452163a8fc7e2
parentdcb44ac0601e7fcda6d9d9930fd80c7124240146
usb: cdc_acm: Do not leak URB buffers

When the ACM TTY port is disconnected, the URBs it uses must be killed, and
then the buffers must be freed. Unfortunately a previous refactor removed
the code freeing the buffers because it looked extremely similar to the
code killing the URBs.

As a result, there were many new leaks for each plug/unplug cycle of a
CDC-ACM device, that were detected by kmemleak.

Restore the missing code, and the memory leak is removed.

Fixes: ba8c931ded8d ("cdc-acm: refactor killing urbs")
Signed-off-by: Romain Izard <romain.izard.pro@gmail.com>
Acked-by: Oliver Neukum <oneukum@suse.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-acm.c