On 10/15/19 7:14 AM, GwanYeong Kim wrote:
cannot be less than 0 - fread() returns 0 on error. Signed-off-by: GwanYeong Kim <gy741.kim@xxxxxxxxx> --- tools/usb/usbip/libsrc/usbip_device_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/usb/usbip/libsrc/usbip_device_driver.c b/tools/usb/usbip/libsrc/usbip_device_driver.c index 051d7d3f443b..49760b98aabc 100644 --- a/tools/usb/usbip/libsrc/usbip_device_driver.c +++ b/tools/usb/usbip/libsrc/usbip_device_driver.c @@ -79,7 +79,7 @@ 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 != sizeof(descr))
Are you sure this check is correct? fread() returns the number of elements read, # elements = 1 in this case. fread() returns 0 when size or # of elements is 0 and in other error cases it will return < # of elements. I would think you want to check ret != 1 here. thanks, -- Shuah