From c85116940e9175243d9d5127071bfd8716bb25c8 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Tue, 9 Nov 2010 08:35:57 +0000 Subject: [PATCH] ..\ is valid if the result ends up in the root dir. Thanks ripsaw Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3659 --- src/dos/dos_files.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dos/dos_files.cpp b/src/dos/dos_files.cpp index 6ae2f439..9fe36bcb 100644 --- a/src/dos/dos_files.cpp +++ b/src/dos/dos_files.cpp @@ -206,11 +206,15 @@ bool DOS_ChangeDir(char const * const dir) { const char * testdir=dir; if (strlen(testdir) && testdir[1]==':') testdir+=2; size_t len=strlen(testdir); - if (!len || (len>1 && testdir[len-1]=='\\')) { + if (!len) { DOS_SetError(DOSERR_PATH_NOT_FOUND); return false; } if (!DOS_MakeName(dir,fulldir,&drive)) return false; + if (strlen(fulldir) && testdir[len-1]=='\\') { + DOS_SetError(DOSERR_PATH_NOT_FOUND); + return false; + } if (Drives[drive]->TestDir(fulldir)) { strcpy(Drives[drive]->curdir,fulldir);