diff options
author | Richard Hughes <richard@hughsie.com> | 2010-05-28 14:03:56 +0100 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2010-05-28 14:03:56 +0100 |
commit | 5c17b5a147874645c0dadde3957a9d9b7132993e (patch) | |
tree | 2079d2c0709e6c5ec8b187040ee19ed80eaf9f59 /src | |
parent | 7019d214f82caf2ba83f7b34894a4d7920708831 (diff) |
Fix up a potential crasher in the CSR device code
Diffstat (limited to 'src')
-rw-r--r-- | src/linux/up-device-csr.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/linux/up-device-csr.c b/src/linux/up-device-csr.c index 78e3ea7..6c4815f 100644 --- a/src/linux/up-device-csr.c +++ b/src/linux/up-device-csr.c @@ -90,7 +90,7 @@ static libusb_device * up_device_csr_find_device (UpDeviceCsr *csr) { libusb_device *curr_device = NULL; - libusb_device **devices; + libusb_device **devices = NULL; guint8 bus_num; guint8 dev_num; guint i; @@ -99,6 +99,10 @@ up_device_csr_find_device (UpDeviceCsr *csr) /* try to find the right device */ libusb_get_device_list (csr->priv->ctx, &devices); + if (devices == NULL) { + egg_warning ("failed to get any devices"); + goto out; + } for (i=0; devices[i] != NULL; i++) { bus_num = libusb_get_bus_number (devices[i]); @@ -111,6 +115,7 @@ up_device_csr_find_device (UpDeviceCsr *csr) } libusb_free_device_list (devices, TRUE); +out: return curr_device; } |