From: Ankur Verma Date: Tue, 14 Sep 2021 01:25:30 +0000 (-0700) Subject: Fix segmentation fault in libusb_init() if usbi_backend.init() fails X-Git-Tag: upstream/1.0.25~38 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6929b8270170a76e9af30d0a9e95c2081f4372b0;p=platform%2Fupstream%2Flibusb.git Fix segmentation fault in libusb_init() if usbi_backend.init() fails If the backend init fails, the control goes to err_io_exit which tries to clean up hotplug related lists that aren't initialized. Moving hotplug_init before makes sure the lists are valid so if backend init fails they get cleaned up without errors. Closes #989 --- diff --git a/libusb/core.c b/libusb/core.c index f0844bf..d05357d 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -2342,13 +2342,14 @@ int API_EXPORTED libusb_init(libusb_context **ctx) list_add(&_ctx->list, &active_contexts_list); usbi_mutex_static_unlock(&active_contexts_lock); + usbi_hotplug_init(_ctx); + if (usbi_backend.init) { r = usbi_backend.init(_ctx); if (r) goto err_io_exit; } - usbi_hotplug_init(_ctx); if (ctx) *ctx = _ctx; diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 61bd5b0..f754220 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11653 +#define LIBUSB_NANO 11654