userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp
changeset 176 af6ec97d9189
parent 33 0173bcd7697c
child 268 345b1ca54e88
child 271 dc268b18d709
--- 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)