userlibandfileserver/fileserver/sfile/sf_ext.cpp
changeset 266 0008ccd16016
parent 201 43365a9b78a3
--- a/userlibandfileserver/fileserver/sfile/sf_ext.cpp	Thu Sep 02 21:54:16 2010 +0300
+++ b/userlibandfileserver/fileserver/sfile/sf_ext.cpp	Fri Sep 17 08:37:04 2010 +0300
@@ -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)