From 2529a3fc4f987f93e0774af865ac7cb6557bd0c2 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Fri, 4 Feb 2022 22:50:28 +0100 Subject: [PATCH] core: Unset device ctx if it has been destroyed Devices can outlive their context in some cases (in particular with python garbage collection). Guard against this happening by clearing the ctx pointer so that it is not pointing to uninitialized memory. --- libusb/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libusb/core.c b/libusb/core.c index 7893ac23..1c1ada14 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -2441,6 +2441,7 @@ void API_EXPORTED libusb_exit(libusb_context *ctx) for_each_device(_ctx, dev) { usbi_warn(_ctx, "device %d.%d still referenced", dev->bus_number, dev->device_address); + DEVICE_CTX(dev) = NULL; } if (!list_empty(&_ctx->open_devs))