lkml.org 
[lkml]   [2020]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 44/79] usb: hso: check for return value in hso_serial_common_create()
    Date
    From: Rustam Kovhaev <rkovhaev@gmail.com>

    [ Upstream commit e911e99a0770f760377c263bc7bac1b1593c6147 ]

    in case of an error tty_register_device_attr() returns ERR_PTR(),
    add IS_ERR() check

    Reported-and-tested-by: syzbot+67b2bd0e34f952d0321e@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=67b2bd0e34f952d0321e
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/usb/hso.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
    index 5f123a8cf68ed..d2fdb5430d272 100644
    --- a/drivers/net/usb/hso.c
    +++ b/drivers/net/usb/hso.c
    @@ -2261,12 +2261,14 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,

    minor = get_free_serial_index();
    if (minor < 0)
    - goto exit;
    + goto exit2;

    /* register our minor number */
    serial->parent->dev = tty_port_register_device_attr(&serial->port,
    tty_drv, minor, &serial->parent->interface->dev,
    serial->parent, hso_serial_dev_groups);
    + if (IS_ERR(serial->parent->dev))
    + goto exit2;

    /* fill in specific data for later use */
    serial->minor = minor;
    @@ -2311,6 +2313,7 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs,
    return 0;
    exit:
    hso_serial_tty_unregister(serial);
    +exit2:
    hso_serial_common_free(serial);
    return -1;
    }
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-08-10 17:39    [W:4.153 / U:0.472 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site