Otherwise the device will still be linked in the device list and any thread iterating it to find a matching device will access stale pointer.
Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/winebus.sys/main.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/winebus.sys/main.c b/dlls/winebus.sys/main.c index 23c40e6895e..a60e3cc9a2c 100644 --- a/dlls/winebus.sys/main.c +++ b/dlls/winebus.sys/main.c @@ -712,6 +712,7 @@ static NTSTATUS pdo_pnp_dispatch(DEVICE_OBJECT *device, IRP *irp)
remove_pending_irps(device);
+ bus_unlink_hid_device(device); ext->vtbl->free_device(device);
ext->cs.DebugInfo->Spare[0] = 0;