diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index 2e0e5a79..a37b4cf8 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -309,6 +309,7 @@ bool DOS_Rename(char const * const oldname,char const * const newname) { } bool DOS_FindFirst(char * search,Bit16u attr,bool fcb_findfirst) { + LOG(LOG_FILES,LOG_NORMAL)("file search attributes %X name %s",attr,search); DOS_DTA dta(dos.dta()); Bit8u drive;char fullsearch[DOS_PATHLENGTH]; char dir[DOS_PATHLENGTH];char pattern[DOS_PATHLENGTH]; @@ -633,6 +634,11 @@ bool DOS_OpenFileExtended(char const * name, Bit16u flags, Bit16u createAttr, Bi bool DOS_UnlinkFile(char const * const name) { char fullname[DOS_PATHLENGTH];Bit8u drive; + // An existing device returns an access denied error + if (DOS_FindDevice(name) != DOS_DEVICES) { + DOS_SetError(DOSERR_ACCESS_DENIED); + return false; + } if (!DOS_MakeName(name,fullname,&drive)) return false; if(Drives[drive]->FileUnlink(fullname)){ return true;