diff options
author | Greg Kroah-Hartman <greg@kroah.com> | 2011-08-12 13:02:14 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <greg@kroah.com> | 2011-08-12 13:02:14 -0700 |
commit | 85218d3c36e8af00e2e365463c26c00be577479b (patch) | |
tree | adaabf848387b6badd29589f13146df712b699bb | |
parent | 4577dd767e33f358ccedeac9ca1102f8548b38fb (diff) | |
parent | d63fa164a4ffebc5247acaa3b80b0d4f2e21d926 (diff) | |
download | usbutils-85218d3c36e8af00e2e365463c26c00be577479b.tar.gz |
Merge pull request #2 from nphilipp/master--nphilipp
don't use invalid config descriptors
-rw-r--r-- | lsusb.c | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -3800,14 +3800,25 @@ static void dumpdev(libusb_device *dev) if (desc.bNumConfigurations) { struct libusb_config_descriptor *config; - libusb_get_config_descriptor(dev, 0, &config); - otg = do_otg(config) || otg; - libusb_free_config_descriptor(config); + ret = libusb_get_config_descriptor(dev, 0, &config); + if (ret) { + fprintf(stderr, "Couldn't get configuration descriptor 0, " + "some information will be missing\n"); + } else { + otg = do_otg(config) || otg; + libusb_free_config_descriptor(config); + } for (i = 0; i < desc.bNumConfigurations; ++i) { - libusb_get_config_descriptor(dev, i, &config); - dump_config(udev, config); - libusb_free_config_descriptor(config); + ret = libusb_get_config_descriptor(dev, i, &config); + if (ret) { + fprintf(stderr, "Couldn't get configuration " + "descriptor %d, some information will " + "be missing\n", i); + } else { + dump_config(udev, config); + libusb_free_config_descriptor(config); + } } } if (!udev) |