disk: Fix detection of busnum
Unpatched version of libusb on linux platform does not set location, but Debian's version of libusb has a patch which set it. For compatibility with other systems without unpatched libusb version, read busnum from dirname which seems to be always set. Fixes: https://github.com/pali/0xFFFF/issues/5
This commit is contained in:
1 parent
e987dcd948
commit
33442482c6
1 file changed
+9
-1
+9
-1
@@ -363,9 +363,17 @@ int disk_init(struct usb_device_info * dev) {
|
|||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
if ( devnum != device->devnum || device->bus->location != busnum )
|
if ( device->devnum != devnum )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if ( device->bus->location ) {
|
||||||
|
if ( device->bus->location != busnum )
|
||||||
|
continue;
|
||||||
|
} else if ( device->bus->dirname[0] ) {
|
||||||
|
if ( atoi(device->bus->dirname) != (int)busnum )
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ( sscanf(dirent->d_name, "%d:%d", &maj2, &min2) != 2 ) {
|
if ( sscanf(dirent->d_name, "%d:%d", &maj2, &min2) != 2 ) {
|
||||||
maj2 = -1;
|
maj2 = -1;
|
||||||
min2 = -1;
|
min2 = -1;
|
||||||
|
|||||||
Reference in new issue
Block a user