summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2003-01-06 14:24:55 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2003-01-06 14:24:55 +0000
commite564655160324ec360fbc10b142e7f65bbc9d24b (patch)
tree92f8043f44bfdbb2ea8f76994fdcaa182cb34ec3
parent9f2530aadf482020a9a9453e35953a1a8c6a907e (diff)
downloadldetect-e564655160324ec360fbc10b142e7f65bbc9d24b.tar
ldetect-e564655160324ec360fbc10b142e7f65bbc9d24b.tar.gz
ldetect-e564655160324ec360fbc10b142e7f65bbc9d24b.tar.bz2
ldetect-e564655160324ec360fbc10b142e7f65bbc9d24b.tar.xz
ldetect-e564655160324ec360fbc10b142e7f65bbc9d24b.zip
special case for buggy 0x0 usb entry so that we eventually got a
class, thus normalizing lspcidrake & harddrake output
-rw-r--r--pciusb.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/pciusb.c b/pciusb.c
index 311c8fa..b482b22 100644
--- a/pciusb.c
+++ b/pciusb.c
@@ -122,9 +122,11 @@ extern int pciusb_find_modules(struct pciusb_entries *entries, const char *fpciu
}
if (strncmp(p, "unknown", q-p-1))
e->module = strndup(p,q-p-1);
-
- ifree(e->text); /* usb.c set it so that we display something when usbtable doesn't refer that hw*/
- e->text = strndup(q+2, strlen(q)-4);
+ /* special case for buggy 0x0 usb entry */
+ if (vendor != 0 && device != 0 && e->class_ != 0x90000d) { /* Hub class */
+ ifree(e->text); /* usb.c set it so that we display something when usbtable doesn't refer that hw*/
+ e->text = strndup(q+2, strlen(q)-4);
+ }
/* if subids read on pcitable line, we know that subids matches :
(see "subids differ" test above) */
if (nb == 4)