diff -r f497542af8e4 -r 538db54a451d userlibandfileserver/fileserver/swins/elocal.cpp --- 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) {