userlibandfileserver/fileserver/sfile/sf_ses.cpp
changeset 299 b5a01337d018
parent 286 48e57fb1237e
equal deleted inserted replaced
297:b2826f67641f 299:b5a01337d018
   373 // Set the drive name
   373 // Set the drive name
   374 //
   374 //
   375 TInt TFsSetDriveName::DoRequestL(CFsRequest* aRequest)
   375 TInt TFsSetDriveName::DoRequestL(CFsRequest* aRequest)
   376 	{
   376 	{
   377 	TInt driveNum=aRequest->Drive()->DriveNumber();
   377 	TInt driveNum=aRequest->Drive()->DriveNumber();
   378 	TFileName driveName;
   378 
   379 	aRequest->ReadL(KMsgPtr1,driveName);
       
   380 
   379 
   381 //	Validate name - return KErrBadName if it contains illegal characters such as
   380 //	Validate name - return KErrBadName if it contains illegal characters such as
   382 //	* ? / | > <
   381 //	* ? / | > <
   383 
   382 
   384 	TNameChecker checker(driveName);
   383     TPtrC driveName(aRequest->Dest().FullName());
       
   384     TNameChecker checker(driveName);
   385 	TText badChar;
   385 	TText badChar;
   386 	if (checker.IsIllegalName(badChar))
   386 	if (checker.IsIllegalName(badChar))
   387 		return(KErrBadName);
   387 		return(KErrBadName);
   388 	
   388 	
   389 	TInt len=((driveName.Length()+31)>>5)<<5; // % 32
   389 	TInt len=((driveName.Length()+31)>>5)<<5; // % 32
   396 			return(KErrNoMemory);
   396 			return(KErrNoMemory);
   397 		TheDriveNames[driveNum]=temp;
   397 		TheDriveNames[driveNum]=temp;
   398 		}
   398 		}
   399 	if (TheDriveNames[driveNum]==NULL || TheDriveNames[driveNum]->Des().MaxLength()<len)
   399 	if (TheDriveNames[driveNum]==NULL || TheDriveNames[driveNum]->Des().MaxLength()<len)
   400 		return(KErrNoMemory);
   400 		return(KErrNoMemory);
   401 	*TheDriveNames[driveNum]=driveName;
   401 	*TheDriveNames[driveNum]=aRequest->Dest().FullName();
   402 	return(KErrNone);
   402 	return(KErrNone);
   403 	}
   403 	}
   404 
   404 
   405 TInt TFsSetDriveName::Initialise(CFsRequest* aRequest)
   405 TInt TFsSetDriveName::Initialise(CFsRequest* aRequest)
   406 	{
   406 	{
   407 	TInt r=ValidateDrive(aRequest->Message().Int0(),aRequest);
   407 	TInt r=ValidateDrive(aRequest->Message().Int0(),aRequest);
   408 	if (r!=KErrNone)
   408 	if (r!=KErrNone)
   409 		return(r);
   409 		return(r);
       
   410 	
       
   411     TFileName driveName;
       
   412     aRequest->ReadL(KMsgPtr1,driveName);
       
   413 	r = aRequest->Dest().Set(driveName,NULL,NULL);
       
   414 	if (r!=KErrNone)
       
   415 		return(r);
       
   416 	
   410 	if (!KCapFsSetDriveName.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Set Drive Name")))
   417 	if (!KCapFsSetDriveName.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Set Drive Name")))
   411 		return KErrPermissionDenied;
   418 		return KErrPermissionDenied;
   412 	return KErrNone;
   419 	return KErrNone;
   413 	}
   420 	}
   414 
   421