lkml.org 
[lkml]   [2017]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 093/235] USB: serial: io_ti: fix NULL-deref at open
    Date
    From: Johan Hovold <johan@kernel.org>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit a323fefc6f5079844dc62ffeb54f491d0242ca35 upstream.

    Fix NULL-pointer dereference when clearing halt at open should a
    malicious device lack the expected endpoints when in download mode.

    Unable to handle kernel NULL pointer dereference at virtual address 00000030
    ...
    [<bf011ed8>] (edge_open [io_ti]) from [<bf000118>] (serial_port_activate+0x68/0x98 [usbserial])
    [<bf000118>] (serial_port_activate [usbserial]) from [<c0470ca4>] (tty_port_open+0x9c/0xe8)
    [<c0470ca4>] (tty_port_open) from [<bf000da0>] (serial_open+0x48/0x6c [usbserial])
    [<bf000da0>] (serial_open [usbserial]) from [<c0469178>] (tty_open+0xcc/0x5cc)

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    drivers/usb/serial/io_ti.c | 7 +++++++
    1 file changed, 7 insertions(+)

    diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
    index 0385bc4efefa..5717996cf87d 100644
    --- a/drivers/usb/serial/io_ti.c
    +++ b/drivers/usb/serial/io_ti.c
    @@ -2409,6 +2409,13 @@ static int edge_startup(struct usb_serial *serial)
    struct edgeport_serial *edge_serial;
    int status;

    + /* Make sure we have the required endpoints when in download mode. */
    + if (serial->interface->cur_altsetting->desc.bNumEndpoints > 1) {
    + if (serial->num_bulk_in < serial->num_ports ||
    + serial->num_bulk_out < serial->num_ports)
    + return -ENODEV;
    + }
    +
    /* create our private serial structure */
    edge_serial = kzalloc(sizeof(struct edgeport_serial), GFP_KERNEL);
    if (edge_serial == NULL) {
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-01-27 12:51    [W:4.234 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site