Index: /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp	(revision 65997)
+++ /trunk/src/VBox/HostServices/SharedFolders/mappings.cpp	(revision 65998)
@@ -22,4 +22,5 @@
 #include <iprt/alloc.h>
 #include <iprt/assert.h>
+#include <iprt/path.h>
 #include <iprt/string.h>
 
@@ -224,5 +225,11 @@
         if (FolderMapping[i].fValid == false)
         {
-            FolderMapping[i].pszFolderName = RTStrDup(pszFolderName);
+            /* Make sure the folder name is an absolute path, otherwise we're
+               likely to get into trouble with buffer sizes in vbsfPathGuestToHost. */
+            char szAbsFolderName[RTPATH_MAX];
+            int rc = RTPathAbs(pszFolderName, szAbsFolderName, sizeof(szAbsFolderName));
+            AssertRCReturn(rc, rc);
+
+            FolderMapping[i].pszFolderName = RTStrDup(szAbsFolderName);
             if (!FolderMapping[i].pszFolderName)
             {
@@ -253,14 +260,6 @@
             RTFSPROPERTIES prop;
             prop.fCaseSensitive = false; /* Shut up MSC. */
-            char *pszAsciiRoot;
-
-            int rc = RTStrUtf8ToCurrentCP(&pszAsciiRoot, FolderMapping[i].pszFolderName);
-            if (RT_SUCCESS(rc))
-            {
-                rc = RTFsQueryProperties(pszAsciiRoot, &prop);
-                AssertRC(rc);
-                RTStrFree(pszAsciiRoot);
-            }
-
+            rc = RTFsQueryProperties(FolderMapping[i].pszFolderName, &prop);
+            AssertRC(rc);
             FolderMapping[i].fHostCaseSensitive = RT_SUCCESS(rc) ? prop.fCaseSensitive : false;
             vbsfRootHandleAdd(i);
Index: /trunk/src/VBox/HostServices/SharedFolders/testcase/tstSharedFolderService.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/testcase/tstSharedFolderService.cpp	(revision 65997)
+++ /trunk/src/VBox/HostServices/SharedFolders/testcase/tstSharedFolderService.cpp	(revision 65998)
@@ -751,6 +751,7 @@
     RTTEST_CHECK_RC_OK(hTest, rc);
     RTTEST_CHECK_MSG(hTest,
-                     !strcmp(testRTFileOpenName, "/test/mapping/test/file"),
-                     (hTest, "pszFilename=%s\n", testRTFileOpenName));
+                     !strcmp(&testRTFileOpenName[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0],
+                             "/test/mapping/test/file"),
+                     (hTest, "pszFilename=%s\n", &testRTFileOpenName[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0]));
     RTTEST_CHECK_MSG(hTest, testRTFileOpenFlags == 0x181,
                      (hTest, "fOpen=%llu\n", LLUIFY(testRTFileOpenFlags)));
@@ -781,9 +782,11 @@
     RTTEST_CHECK_RC_OK(hTest, rc);
     RTTEST_CHECK_MSG(hTest,
-                     !strcmp(testRTDirCreatePath, "/test/mapping/test/dir"),
-                     (hTest, "pszPath=%s\n", testRTDirCreatePath));
+                     !strcmp(&testRTDirCreatePath[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0],
+                             "/test/mapping/test/dir"),
+                     (hTest, "pszPath=%s\n", &testRTDirCreatePath[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0]));
     RTTEST_CHECK_MSG(hTest,
-                     !strcmp(testRTDirOpenName, "/test/mapping/test/dir"),
-                     (hTest, "pszFilename=%s\n", testRTDirOpenName));
+                     !strcmp(&testRTDirOpenName[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0],
+                             "/test/mapping/test/dir"),
+                     (hTest, "pszFilename=%s\n", &testRTDirOpenName[RTPATH_STYLE == RTPATH_STR_F_STYLE_DOS ? 2 : 0]));
     RTTEST_CHECK_MSG(hTest, Result == SHFL_FILE_CREATED,
                      (hTest, "Result=%d\n", (int) Result));
@@ -924,5 +927,4 @@
     const uint32_t fMode = 0660;
     SHFLFSOBJINFO Info;
-    SHFLHANDLE Handle;
     int rc;
 
@@ -930,8 +932,10 @@
     Root = initWithWritableMapping(hTest, &svcTable, &svcHelpers,
                                    "/test/mapping", "testname");
+    SHFLHANDLE Handle = SHFL_HANDLE_NIL;
     testRTFileOpenpFile = hcFile;
     rc = createFile(&svcTable, Root, "/test/file", SHFL_CF_ACCESS_READ,
                     &Handle, NULL);
-    RTTEST_CHECK_RC_OK(hTest, rc);
+    RTTEST_CHECK_RC_OK_RETV(hTest, rc);
+
     RT_ZERO(Info);
     testRTFileQueryInfoFMode = fMode;
