| From: Johan Hovold <johan@kernel.org> |
| Date: Wed, 4 Jul 2018 17:02:16 +0200 |
| Subject: USB: serial: keyspan_pda: fix modem-status error handling |
| |
| commit 01b3cdfca263a17554f7b249d20a247b2a751521 upstream. |
| |
| Fix broken modem-status error handling which could lead to bits of slab |
| data leaking to user space. |
| |
| Fixes: 3b36a8fd6777 ("usb: fix uninitialized variable warning in keyspan_pda") |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/usb/serial/keyspan_pda.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/serial/keyspan_pda.c |
| +++ b/drivers/usb/serial/keyspan_pda.c |
| @@ -373,8 +373,10 @@ static int keyspan_pda_get_modem_info(st |
| 3, /* get pins */ |
| USB_TYPE_VENDOR|USB_RECIP_INTERFACE|USB_DIR_IN, |
| 0, 0, data, 1, 2000); |
| - if (rc >= 0) |
| + if (rc == 1) |
| *value = *data; |
| + else if (rc >= 0) |
| + rc = -EIO; |
| |
| kfree(data); |
| return rc; |