userlibandfileserver/fileserver/sfile/sf_ses.cpp
changeset 300 1d28c8722707
parent 286 48e57fb1237e
--- a/userlibandfileserver/fileserver/sfile/sf_ses.cpp	Wed Oct 20 13:58:28 2010 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_ses.cpp	Tue Nov 02 15:29:23 2010 +0000
@@ -375,13 +375,13 @@
 TInt TFsSetDriveName::DoRequestL(CFsRequest* aRequest)
 	{
 	TInt driveNum=aRequest->Drive()->DriveNumber();
-	TFileName driveName;
-	aRequest->ReadL(KMsgPtr1,driveName);
+
 
 //	Validate name - return KErrBadName if it contains illegal characters such as
 //	* ? / | > <
 
-	TNameChecker checker(driveName);
+    TPtrC driveName(aRequest->Dest().FullName());
+    TNameChecker checker(driveName);
 	TText badChar;
 	if (checker.IsIllegalName(badChar))
 		return(KErrBadName);
@@ -398,7 +398,7 @@
 		}
 	if (TheDriveNames[driveNum]==NULL || TheDriveNames[driveNum]->Des().MaxLength()<len)
 		return(KErrNoMemory);
-	*TheDriveNames[driveNum]=driveName;
+	*TheDriveNames[driveNum]=aRequest->Dest().FullName();
 	return(KErrNone);
 	}
 
@@ -407,6 +407,13 @@
 	TInt r=ValidateDrive(aRequest->Message().Int0(),aRequest);
 	if (r!=KErrNone)
 		return(r);
+	
+    TFileName driveName;
+    aRequest->ReadL(KMsgPtr1,driveName);
+	r = aRequest->Dest().Set(driveName,NULL,NULL);
+	if (r!=KErrNone)
+		return(r);
+	
 	if (!KCapFsSetDriveName.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Set Drive Name")))
 		return KErrPermissionDenied;
 	return KErrNone;