userlibandfileserver/fileserver/swins/elocal.cpp
changeset 8 538db54a451d
parent 6 0173bcd7697c
child 42 a179b74831c9
--- a/userlibandfileserver/fileserver/swins/elocal.cpp	Tue Jan 19 13:48:03 2010 +0000
+++ b/userlibandfileserver/fileserver/swins/elocal.cpp	Mon Jan 18 21:31:10 2010 +0200
@@ -374,7 +374,14 @@
 
 	if (IsRomDrive())
 		User::Leave(KErrAccessDenied);
-	TFileName n;
+	
+    //-- check entry attributes
+    TEntry entry;
+    EntryL(aName, entry);
+	if (entry.IsDir() ||  entry.IsReadOnly())
+	    User::Leave(KErrAccessDenied);
+
+    TFileName n;
 	MapFileNameL(n,Drive().DriveNumber(),aName);
 	BOOL b=Emulator::DeleteFile(StrPtrZL(n));
 	
@@ -947,8 +954,8 @@
 	if (h==INVALID_HANDLE_VALUE)
 		User::Leave(Emulator::LastError());
 	FindClose(h);
-	if (d.cAlternateFileName[0])	// we have a dos name too
-		aShortName=(TText*)(&d.cAlternateFileName[0]);
+    if (d.cAlternateFileName[0])	// we have a dos name too
+        aShortName=(TText*)(&d.cAlternateFileName[0]);
 	else
 		aShortName=(TText*)(&d.cFileName[0]);
 	}
@@ -1411,7 +1418,7 @@
 	CheckPosL(aPos);
 	TInt pos=0;
 	TInt len=aLength;
-	TBuf8<0x1000> buf;
+	TBuf8<65536> buf;
 
 	if (aMessage.Handle() == KLocalMessageHandle)
 		((TPtr8* )aDes)->SetLength(0);
@@ -1471,7 +1478,7 @@
 	CheckPosL(aPos);
 	TInt pos=0;
 	TInt len=aLength;
-	TBuf8<0x1000> buf;
+	TBuf8<65536> buf;
 
 	while (len)
 		{