| From 74d471b598444b7f2d964930f7234779c80960a0 Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Wed, 11 Oct 2017 14:02:58 +0200 |
| Subject: USB: serial: garmin_gps: fix memory leak on probe errors |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit 74d471b598444b7f2d964930f7234779c80960a0 upstream. |
| |
| Make sure to free the port private data before returning after a failed |
| probe attempt. |
| |
| Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/serial/garmin_gps.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/drivers/usb/serial/garmin_gps.c |
| +++ b/drivers/usb/serial/garmin_gps.c |
| @@ -1413,6 +1413,12 @@ static int garmin_port_probe(struct usb_ |
| usb_set_serial_port_data(port, garmin_data_p); |
| |
| status = garmin_init_session(port); |
| + if (status) |
| + goto err_free; |
| + |
| + return 0; |
| +err_free: |
| + kfree(garmin_data_p); |
| |
| return status; |
| } |