From 212b4456282afc1100643beebb861155002ac62e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 6 Sep 2019 01:37:00 +0200 Subject: [PATCH] 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. --- libs/surfaces/contourdesign/contourdesign.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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*