userlibandfileserver/fileserver/sfile/sf_svr.cpp
changeset 299 b5a01337d018
parent 132 e4a7b1cbe40c
equal deleted inserted replaced
297:b2826f67641f 299:b5a01337d018
   209 	    ret = ParseNoWildSubstPtr1(aRequest, aRequest->Src());
   209 	    ret = ParseNoWildSubstPtr1(aRequest, aRequest->Src());
   210 		if (ret!=KErrNone)
   210 		if (ret!=KErrNone)
   211 			return(ret);
   211 			return(ret);
   212 		}
   212 		}
   213 	aRequest->SetScratchValue(monitorAllDrives);
   213 	aRequest->SetScratchValue(monitorAllDrives);
   214 	ret = PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsNotifyChangeEx, __PLATSEC_DIAGNOSTIC_STRING("Extended Change Notifier"));		
   214 	ret = PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsNotifyChangeEx, __PLATSEC_DIAGNOSTIC_STRING("Extended Change Notifier"));		
   215 	return(ret);
   215 	return(ret);
   216 	}
   216 	}
   217 
   217 
   218 TInt TFsNotifyChangeCancel::DoRequestL(CFsRequest* aRequest)
   218 TInt TFsNotifyChangeCancel::DoRequestL(CFsRequest* aRequest)
   219 //
   219 //
   592 	{
   592 	{
   593     TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest);
   593     TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest);
   594     if(r != KErrNone)
   594     if(r != KErrNone)
   595         return r;
   595         return r;
   596 
   596 
   597 	TFileName volumeName;
       
   598 	aRequest->ReadL(KMsgPtr0,volumeName);
       
   599 	if (volumeName.Length()>KMaxVolumeNameLength)	//	KMaxVolumeNameLength = 11 
       
   600 		return(KErrBadName);
       
   601 	
       
   602     //	Validate name - return KErrBadName if it contains illegal characters such as * ? / | > <
   597     //	Validate name - return KErrBadName if it contains illegal characters such as * ? / | > <
   603 	TNameChecker checker(volumeName);
   598     TPtrC volumeName(aRequest->Dest().FullName());
       
   599     TNameChecker checker(volumeName);
   604 	TText badChar;
   600 	TText badChar;
   605 	if (checker.IsIllegalName(badChar))
   601 	if (checker.IsIllegalName(badChar))
   606 		return(KErrBadName);
   602 		return(KErrBadName);
   607 
   603 
   608 	return(aRequest->Drive()->SetVolume(volumeName));
   604 	return(aRequest->Drive()->SetVolume(volumeName));
   615 //
   611 //
   616 	{
   612 	{
   617 	TInt r=ValidateDriveDoSubst(aRequest->Message().Int1(),aRequest);
   613 	TInt r=ValidateDriveDoSubst(aRequest->Message().Int1(),aRequest);
   618 	if (r!=KErrNone)
   614 	if (r!=KErrNone)
   619 		return(r);
   615 		return(r);
       
   616 	TFileName volumeName;
       
   617 	TRAP(r,aRequest->ReadL(KMsgPtr0,volumeName));
       
   618 	if(r!=KErrNone)
       
   619 	    return r;
       
   620     if (volumeName.Length()>KMaxVolumeNameLength)   //  KMaxVolumeNameLength = 11 
       
   621         return(KErrBadName);
       
   622     
       
   623 	r = aRequest->Dest().Set(volumeName,NULL,NULL);
       
   624 	if(r!=KErrNone)
       
   625 	    return r;
       
   626 	
   620 	if (!KCapFsSetVolume.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Set Volume")))
   627 	if (!KCapFsSetVolume.CheckPolicy(aRequest->Message(), __PLATSEC_DIAGNOSTIC_STRING("Set Volume")))
   621 		return KErrPermissionDenied;
   628 		return KErrPermissionDenied;
   622 	return KErrNone;
   629 	return KErrNone;
   623 	}
   630 	}
   624 
   631 
   669 		pD->SetSubst(NULL);
   676 		pD->SetSubst(NULL);
   670 		pD->SetAtt(0);
   677 		pD->SetAtt(0);
   671 		pD->SetSubstedDrive(NULL);
   678 		pD->SetSubstedDrive(NULL);
   672 		return(KErrNone);
   679 		return(KErrNone);
   673 		}
   680 		}
   674 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysSetSubst,&KCapFsPriSetSubst,&KCapFsROSetSubst, __PLATSEC_DIAGNOSTIC_STRING("Set Subst"));
   681 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysSetSubst,&KCapFsPriSetSubst,&KCapFsROSetSubst, __PLATSEC_DIAGNOSTIC_STRING("Set Subst"));
   675 	if (r!=KErrNone)
   682 	if (r!=KErrNone)
   676 		return(r);
   683 		return(r);
   677 	if (pD->Att()&(KDriveAttLocal|KDriveAttRom|KDriveAttRedirected|KDriveAttSubsted))
   684 	if (pD->Att()&(KDriveAttLocal|KDriveAttRom|KDriveAttRedirected|KDriveAttSubsted))
   678 		return(KErrGeneral);
   685 		return(KErrGeneral);
   679 	if (pD==aRequest->Drive())
   686 	if (pD==aRequest->Drive())
   708 //
   715 //
   709 	{
   716 	{
   710 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
   717 	TInt r=ParseSubstPtr0(aRequest,aRequest->Src());
   711 	if (r!=KErrNone)
   718 	if (r!=KErrNone)
   712 		return(r);
   719 		return(r);
   713 	r=PathCheck(aRequest,aRequest->Src().FullName().Mid(2),&KCapFsSysRealName,&KCapFsPriRealName, __PLATSEC_DIAGNOSTIC_STRING("Real Name"));
   720 	r=PathCheck(aRequest->Message(),aRequest->Src().FullName().Mid(2),&KCapFsSysRealName,&KCapFsPriRealName, __PLATSEC_DIAGNOSTIC_STRING("Real Name"));
   714 	if (r!=KErrNone)
   721 	if (r!=KErrNone)
   715 		return(r);
   722 		return(r);
   716 	TFileName substName;
   723 	TFileName substName;
   717 	if (aRequest->Drive()->Att()&KDriveAttRedirected)
   724 	if (aRequest->Drive()->Att()&KDriveAttRedirected)
   718 		substName=aRequest->Drive()->Subst();	//	DANGER?
   725 		substName=aRequest->Drive()->Subst();	//	DANGER?
   867 	{
   874 	{
   868 	TParse parse;
   875 	TParse parse;
   869 	TInt r=ParsePathPtr0(aRequest,parse);	
   876 	TInt r=ParsePathPtr0(aRequest,parse);	
   870 	if (r!=KErrNone && r!=KErrInUse)
   877 	if (r!=KErrNone && r!=KErrInUse)
   871 		return(r);
   878 		return(r);
   872 	r=PathCheck(aRequest,parse.FullName().Mid(2),&KCapFsSysSetSessionPath,&KCapFsPriSetSessionPath, __PLATSEC_DIAGNOSTIC_STRING("Set Session Path"));
   879 	r=PathCheck(aRequest->Message(),parse.FullName().Mid(2),&KCapFsSysSetSessionPath,&KCapFsPriSetSessionPath, __PLATSEC_DIAGNOSTIC_STRING("Set Session Path"));
   873 	if (r!=KErrNone)
   880 	if (r!=KErrNone)
   874 		return(r);
   881 		return(r);
   875 	if (IsIllegalFullName(parse.FullName()))
   882 	if (IsIllegalFullName(parse.FullName()))
   876 		return(KErrBadName);
   883 		return(KErrBadName);
   877 	HBufC* pP=parse.FullName().Alloc();
   884 	HBufC* pP=parse.FullName().Alloc();