From 6236138e259e50c6f457d27180e435610c8e1c40 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Sun, 8 Jun 2008 14:27:00 +0000 Subject: [PATCH] Lock the control pipe mutex before destroying it to ensure that a possibly still open transfer has enough time to cleanly exit with error. Fixes a crash when removing a device while a control transfer on the device endpoint was open and would have timed out otherwise. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25863 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/usb/Pipe.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/add-ons/kernel/bus_managers/usb/Pipe.cpp b/src/add-ons/kernel/bus_managers/usb/Pipe.cpp index 4b40d5e2a1..c4bafe2348 100644 --- a/src/add-ons/kernel/bus_managers/usb/Pipe.cpp +++ b/src/add-ons/kernel/bus_managers/usb/Pipe.cpp @@ -301,6 +301,7 @@ ControlPipe::~ControlPipe() { if (fNotifySem >= 0) delete_sem(fNotifySem); + mutex_lock(&fSendRequestLock); mutex_destroy(&fSendRequestLock); }