diff options
author | Thomas Heijligen <thomas.heijligen@secunet.com> | 2022-08-05 17:56:20 +0200 |
---|---|---|
committer | Thomas Heijligen <src@posteo.de> | 2022-08-23 08:40:50 +0000 |
commit | 374871c0393bb1d67c36dc9b7280d8e5f8b22ad5 (patch) | |
tree | 1a47dea0fc467514aac4759c62df121b005fbaf1 | |
parent | 7346cda9e934cc71708efddba7a24e83f546992c (diff) | |
download | flashrom-374871c0393bb1d67c36dc9b7280d8e5f8b22ad5.tar.gz flashrom-374871c0393bb1d67c36dc9b7280d8e5f8b22ad5.tar.bz2 flashrom-374871c0393bb1d67c36dc9b7280d8e5f8b22ad5.zip |
tree: Check properly if libusb is initialized
The dediprog, developerbox_spi and stlinkv3_spi programmers only check
if the libusb_context is not NULL after the initialization. But
following the API documentation from libusb, the context is undefined
unless the init function returns 0. Fix this by checking the return
value instead of the libusb_context to see if the initialization was
successful.
https://libusb.sourceforge.io/api-1.0/group__libusb__lib.html
Change-Id: Ia45ccd3fa2239dfccd821be46a09c86426cb22e5
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/66460
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | dediprog.c | 4 | ||||
-rw-r--r-- | developerbox_spi.c | 3 | ||||
-rw-r--r-- | stlinkv3_spi.c | 3 |
3 files changed, 4 insertions, 6 deletions
@@ -1206,8 +1206,8 @@ static int dediprog_init(void) dp_data->devicetype = DEV_UNKNOWN; /* Here comes the USB stuff. */ - libusb_init(&dp_data->usb_ctx); - if (!dp_data->usb_ctx) { + ret = libusb_init(&dp_data->usb_ctx); + if (ret) { msg_perr("Could not initialize libusb!\n"); goto init_err_exit; } diff --git a/developerbox_spi.c b/developerbox_spi.c index c84190a3..6308da63 100644 --- a/developerbox_spi.c +++ b/developerbox_spi.c @@ -147,8 +147,7 @@ static int developerbox_spi_init(void) struct libusb_context *usb_ctx; libusb_device_handle *cp210x_handle; - libusb_init(&usb_ctx); - if (!usb_ctx) { + if (libusb_init(&usb_ctx)) { msg_perr("Could not initialize libusb!\n"); return 1; } diff --git a/stlinkv3_spi.c b/stlinkv3_spi.c index 4919d48a..22a0a063 100644 --- a/stlinkv3_spi.c +++ b/stlinkv3_spi.c @@ -485,8 +485,7 @@ static int stlinkv3_spi_init(void) libusb_device_handle *stlinkv3_handle; struct stlinkv3_spi_data *stlinkv3_data; - libusb_init(&usb_ctx); - if (!usb_ctx) { + if (libusb_init(&usb_ctx)) { msg_perr("Could not initialize libusb!\n"); return 1; } |