userlibandfileserver/fileserver/sfile/sf_ext.cpp
changeset 254 1560c419b176
parent 176 af6ec97d9189
--- a/userlibandfileserver/fileserver/sfile/sf_ext.cpp	Tue Aug 24 14:49:21 2010 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_ext.cpp	Tue Aug 31 11:31:15 2010 +0100
@@ -1468,16 +1468,22 @@
 	}
 
 TInt TFsMountExtension::Initialise(CFsRequest* aRequest)
-//
-//
-//
 	{
-	TInt r=ValidateDrive(aRequest->Message().Int1(),aRequest);
+    TInt r;
+
+    //-- check extension name length. It should not exceed KMaxFSNameLength (32 characters)
+    r = aRequest->GetDesLength(KMsgPtr0);
+    if(r <=0 || r >KMaxFSNameLength)
+        return KErrArgument;
+    
+    r = ValidateDrive(aRequest->Message().Int1(),aRequest);
 	if(r!=KErrNone)
-		return(r);
+		return r;
+	
 	if(aRequest->Drive()->IsSubsted())
-		return(KErrNotSupported);
-	return(r);
+		return KErrNotSupported;
+	
+    return r;
 	}
 
 
@@ -1486,7 +1492,7 @@
 // Dismount extension
 //
 	{
-	TFullName name;
+	TFSName name;
 	aRequest->ReadL(KMsgPtr0,name);
 	CProxyDriveFactory* pE=GetExtension(name);
 	if (pE==NULL)
@@ -1496,18 +1502,25 @@
 
 
 TInt TFsDismountExtension::Initialise(CFsRequest* aRequest)
-//
-//
-//
 	{
+    TInt r;
+
+    //-- check extension name length. It should not exceed KMaxFSNameLength (32 characters)
+    r = aRequest->GetDesLength(KMsgPtr0);
+    if(r <=0 || r >KMaxFSNameLength)
+        return KErrArgument;
+	
 	if (!KCapFsDismountExtension.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Dismount File Extension")))
 		return KErrPermissionDenied;
-	TInt r=ValidateDrive(aRequest->Message().Int1(),aRequest);
+
+	r = ValidateDrive(aRequest->Message().Int1(),aRequest);
 	if(r!=KErrNone)
-		return(r);
+		return r;
+
 	if(aRequest->Drive()->IsSubsted())
 		return(KErrNotSupported);
-	return(r);
+	
+    return r;
 	}
 
 TInt TFsRemoveExtension::DoRequestL(CFsRequest* aRequest)