diff options
author | Robin Gareus <robin@gareus.org> | 2019-09-06 01:37:00 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-09-06 01:37:00 +0200 |
commit | 212b4456282afc1100643beebb861155002ac62e (patch) | |
tree | e30e9bdf6db2f548ac76bcdc684d76923d6ee02a /libs/surfaces/contourdesign | |
parent | 15defd5381bab315e5a5887ee65a4b8a1ef255a7 (diff) |
Shuttle Surface: handle libusb_init() failure
USB stack may not be available on some systems, e.g. unit-test VM.
When libusb_init(0) fails to create default context, further calls
into the libusb API will cause segfaults.
Diffstat (limited to 'libs/surfaces/contourdesign')
-rw-r--r-- | libs/surfaces/contourdesign/contourdesign.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/surfaces/contourdesign/contourdesign.cc b/libs/surfaces/contourdesign/contourdesign.cc index ac7ed0b536..1e4471b56b 100644 --- a/libs/surfaces/contourdesign/contourdesign.cc +++ b/libs/surfaces/contourdesign/contourdesign.cc @@ -89,7 +89,11 @@ ContourDesignControlProtocol::~ContourDesignControlProtocol () bool ContourDesignControlProtocol::probe () { - return true; + bool rv = LIBUSB_SUCCESS == libusb_init (0); + if (rv) { + libusb_exit (0); + } + return rv; } void* |