lkml.org 
[lkml]   [2019]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.3 149/193] usbip: tools: Fix read_usb_vudc_device() error path handling
    Date
    From: GwanYeong Kim <gy741.kim@gmail.com>

    [ Upstream commit 28df0642abbf6d66908a2858922a7e4b21cdd8c2 ]

    This isn't really accurate right. fread() doesn't always
    return 0 in error. It could return < number of elements
    and set errno.

    Signed-off-by: GwanYeong Kim <gy741.kim@gmail.com>
    Acked-by: Shuah Khan <skhan@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20191018032223.4644-1-gy741.kim@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/usb/usbip/libsrc/usbip_device_driver.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/tools/usb/usbip/libsrc/usbip_device_driver.c b/tools/usb/usbip/libsrc/usbip_device_driver.c
    index 5a3726eb44abc..b237a43e62990 100644
    --- a/tools/usb/usbip/libsrc/usbip_device_driver.c
    +++ b/tools/usb/usbip/libsrc/usbip_device_driver.c
    @@ -69,7 +69,7 @@ int read_usb_vudc_device(struct udev_device *sdev, struct usbip_usb_device *dev)
    FILE *fd = NULL;
    struct udev_device *plat;
    const char *speed;
    - int ret = 0;
    + size_t ret;

    plat = udev_device_get_parent(sdev);
    path = udev_device_get_syspath(plat);
    @@ -79,8 +79,10 @@ int read_usb_vudc_device(struct udev_device *sdev, struct usbip_usb_device *dev)
    if (!fd)
    return -1;
    ret = fread((char *) &descr, sizeof(descr), 1, fd);
    - if (ret < 0)
    + if (ret != 1) {
    + err("Cannot read vudc device descr file: %s", strerror(errno));
    goto err;
    + }
    fclose(fd);

    copy_descr_attr(dev, &descr, bDeviceClass);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-11-11 20:00    [W:4.105 / U:0.336 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site