userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp
--- a/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Mon Jun 21 17:12:14 2010 +0300
+++ b/userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp Thu Jul 15 20:11:42 2010 +0300
@@ -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)