userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp
--- a/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Wed Jun 23 11:59:44 2010 +0100
+++ b/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Wed Jun 23 12:52:28 2010 +0100
@@ -114,9 +114,13 @@
return;
}
break;
+ case EUsbHostMsUnRegisterInterface:
+ iCleanupInProgress = ETrue;
+ break;
/* If it is a cleanup then we need to delete the iDeviceThread */
case EUsbHostMsFinalCleanup:
delete iDeviceThread;
+ iDeviceThread = NULL;
iThread.Kill(KErrNone);
aMessage.Complete(KErrNone);
return;
@@ -124,7 +128,12 @@
break;
}
- __ASSERT_DEBUG(iDeviceThread != NULL, User::Panic(KUsbMsHostPanicCat, EDeviceThreadDoesNotExist));
+ if (iDeviceThread == NULL || iCleanupInProgress )
+ {
+ aMessage.Complete(KErrBadHandle);
+ return;
+ }
+
r = iDeviceThread->QueueMsg(aMessage);
if (r != KErrNone)