Skip to content

Commit 28df064

Browse files
gy741gregkh
authored andcommitted
usbip: tools: Fix read_usb_vudc_device() error path handling
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 <[email protected]> Acked-by: Shuah Khan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent d5501d5 commit 28df064

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

tools/usb/usbip/libsrc/usbip_device_driver.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ int read_usb_vudc_device(struct udev_device *sdev, struct usbip_usb_device *dev)
6969
FILE *fd = NULL;
7070
struct udev_device *plat;
7171
const char *speed;
72-
int ret = 0;
72+
size_t ret;
7373

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

8688
copy_descr_attr(dev, &descr, bDeviceClass);

0 commit comments

Comments
 (0)