Index: /trunk/src/VBox/Debugger/DBGPlugInDarwin.cpp
===================================================================
--- /trunk/src/VBox/Debugger/DBGPlugInDarwin.cpp	(revision 103284)
+++ /trunk/src/VBox/Debugger/DBGPlugInDarwin.cpp	(revision 103285)
@@ -716,6 +716,7 @@
             {
                 char szTmp[RTDBG_SEGMENT_NAME_LENGTH + sizeof("_start")];
-                strcat(strcpy(szTmp, aSegs[iSeg].szName), "_start");
-                rc = RTDbgModSymbolAdd(hMod, szTmp, iSeg, 0 /*uRva*/, 0 /*cb*/, 0 /*fFlags*/, NULL);
+                rc = RTStrCat(RTStrCopy2(szTmp, sizeof(szTmp), aSegs[iSeg].szName), sizeof(szTmp), "_start");
+                if (RT_SUCCESS(rc))
+                    rc = RTDbgModSymbolAdd(hMod, szTmp, iSeg, 0 /*uRva*/, 0 /*cb*/, 0 /*fFlags*/, NULL);
             }
             uRvaNext += aSegs[iSeg].cb;
Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 103284)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 103285)
@@ -4842,8 +4842,9 @@
 #define QUERY_VAL_RET(a_Width, a_szName, a_pValue, a_uDefault, a_ExprValid, a_szValidRange) \
             do { \
-                rc = RT_CONCAT(pHlp->pfnCFGMQueryU,a_Width)(pDirNode, strcpy(szNm, a_szName), a_pValue); \
+                AssertCompile(sizeof(szNm) - 1 >= (sizeof(a_szName) - 1) + (sizeof("Out") - 1)); \
+                rc = RT_CONCAT(pHlp->pfnCFGMQueryU,a_Width)(pDirNode, RTStrCopy2(szNm, sizeof(szNm), a_szName), a_pValue); \
                 if (rc == VERR_CFGM_VALUE_NOT_FOUND || rc == VERR_CFGM_NO_PARENT) \
                 { \
-                    rc = RT_CONCAT(pHlp->pfnCFGMQueryU,a_Width)(pCfg, strcat(szNm, pszDir), a_pValue); \
+                    rc = RT_CONCAT(pHlp->pfnCFGMQueryU,a_Width)(pCfg, RTStrCat2(szNm, sizeof(szNm), pszDir), a_pValue); \
                     if (rc == VERR_CFGM_VALUE_NOT_FOUND || rc == VERR_CFGM_NO_PARENT) \
                     { \
Index: /trunk/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp	(revision 103284)
+++ /trunk/src/VBox/Devices/Network/testcase/tstIntNet-1.cpp	(revision 103285)
@@ -847,5 +847,10 @@
     }
 
-    strcat(szPath, "/../VMMR0.r0");
+    rc = RTStrCat(szPath, sizeof(szPath), "/../VMMR0.r0");
+    if (RT_FAILURE(rc))
+    {
+        RTPrintf("tstIntNet-1: RTStrCat -> %Rrc\n", rc);
+        return 1;
+    }
 
     char szAbsPath[RTPATH_MAX];
Index: /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp	(revision 103284)
+++ /trunk/src/VBox/HostDrivers/Support/testcase/tstInt.cpp	(revision 103285)
@@ -62,5 +62,4 @@
     int rcRet = 0;
     int i;
-    int rc;
     int cIterations = argc > 1 ? RTStrToUInt32(argv[1]) : 32;
     if (cIterations == 0)
@@ -72,17 +71,17 @@
     RTR3InitExe(argc, &argv, 0);
     PSUPDRVSESSION pSession;
-    rc = SUPR3Init(&pSession);
+    int rc = SUPR3Init(&pSession);
     rcRet += rc != 0;
     RTPrintf("tstInt: SUPR3Init -> rc=%Rrc\n", rc);
     char szFile[RTPATH_MAX];
-    if (!rc)
-    {
-        rc = RTPathExecDir(szFile, sizeof(szFile) - sizeof("/VMMR0.r0"));
-    }
+    if (RT_SUCCESS(rc))
+        rc = RTPathExecDir(szFile, sizeof(szFile));
+
     char szAbsFile[RTPATH_MAX];
     if (RT_SUCCESS(rc))
     {
-        strcat(szFile, "/VMMR0.r0");
-        rc = RTPathAbs(szFile, szAbsFile, sizeof(szAbsFile));
+        rc = RTPathAppend(szFile, sizeof(szFile), "VMMR0.r0");
+        if (RT_SUCCESS(rc))
+            rc = RTPathAbs(szFile, szAbsFile, sizeof(szAbsFile));
     }
     if (RT_SUCCESS(rc))
@@ -236,4 +235,7 @@
     }
 
+    if (RT_FAILURE(rc))
+        RTPrintf("Failed with rc=%Rrc\n", rc);
+
     return !!rc;
 }
Index: /trunk/src/VBox/HostServices/SharedFolders/testcase/tstShflCase.cpp
===================================================================
--- /trunk/src/VBox/HostServices/SharedFolders/testcase/tstShflCase.cpp	(revision 103284)
+++ /trunk/src/VBox/HostServices/SharedFolders/testcase/tstShflCase.cpp	(revision 103285)
@@ -1,4 +1,7 @@
 /** @file
  * Testcase for shared folder case conversion code.
+ *
+ * @todo r=andy Testcase needs to be rewritten using the test framework.
+ *              Otherwise it's almost pointless to run this on the testboxes.
  */
 
@@ -42,4 +45,5 @@
 #include <iprt/path.h>
 #include <iprt/string.h>
+#include <iprt/test.h>
 #include <iprt/uni.h>
 #include <stdio.h>
@@ -205,5 +209,5 @@
 }
 
-static int vbsfCorrectCasing(char *pszFullPath, char *pszStartComponent)
+static int vbsfCorrectCasing(char *pszFullPath, char *pszStartComponent, size_t cbStartComponent)
 {
     PRTDIRENTRYEX  pDirEntry = NULL;
@@ -230,10 +234,13 @@
     Assert(*(pszStartComponent-1) == RTPATH_DELIMITER);
     *(pszStartComponent-1) = 0;
-    strcpy(pDirEntry->szName, pszFullPath);
+    rc = RTStrCopy(pDirEntry->szName, sizeof(pDirEntry->szName), pszFullPath);
+    if (RT_FAILURE(rc))
+        goto end;
     szWildCard[0] = RTPATH_DELIMITER;
     szWildCard[1] = '*';
     szWildCard[2] = 0;
-    strcat(pDirEntry->szName, szWildCard);
-
+    rc = RTStrCat(pDirEntry->szName, sizeof(pDirEntry->szName), szWildCard);
+    if (RT_FAILURE(rc))
+        goto end;
     rc = RTDirOpenFiltered(&hSearch, pDirEntry->szName, RTDIRFILTER_WINNT, 0 /*fFlags*/);
     *(pszStartComponent-1) = RTPATH_DELIMITER;
@@ -263,6 +270,5 @@
         {
             Log(("Found original name %s (%s)\n", &pDirEntry->szName[0], pszStartComponent));
-            strcpy(pszStartComponent, &pDirEntry->szName[0]);
-            rc = VINF_SUCCESS;
+            rc = RTStrCopy(pszStartComponent, cbStartComponent, &pDirEntry->szName[0]);
             break;
         }
@@ -282,5 +288,5 @@
 
 
-static int testCase(char *pszFullPath, bool fWildCard = false)
+static int testCase(char *pszFullPath, size_t cbFullPath, bool fWildCard = false)
 {
     int rc;
@@ -291,17 +297,17 @@
     {
         /* strip off the last path component, that contains the wildcard(s) */
-        size_t   len = strlen(pszFullPath);
-        char    *src = pszFullPath + len - 1;
-
-        while(src > pszFullPath)
-        {
-            if (*src == RTPATH_DELIMITER)
+        size_t cchLlen = strlen(pszFullPath);
+        char  *pszSrc  = pszFullPath + cchLlen - 1;
+
+        while(pszSrc > pszFullPath)
+        {
+            if (*pszSrc == RTPATH_DELIMITER)
                 break;
-            src--;
-        }
-        if (*src == RTPATH_DELIMITER)
+            pszSrc--;
+        }
+        if (*pszSrc == RTPATH_DELIMITER)
         {
             bool fHaveWildcards = false;
-            char *temp = src;
+            char *temp = pszSrc;
 
             while(*temp)
@@ -319,5 +325,5 @@
             if (fHaveWildcards)
             {
-                pszWildCardComponent = src;
+                pszWildCardComponent = pszSrc;
                 *pszWildCardComponent = 0;
             }
@@ -328,23 +334,23 @@
     if (rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND)
     {
-        size_t   len = strlen(pszFullPath);
-        char    *src = pszFullPath + len - 1;
+        size_t cchLen = strlen(pszFullPath);
+        char  *pszSrc = pszFullPath + cchLen - 1;
 
         Log(("Handle case insensitive guest fs on top of host case sensitive fs for %s\n", pszFullPath));
 
         /* Find partial path that's valid */
-        while(src > pszFullPath)
-        {
-            if (*src == RTPATH_DELIMITER)
+        while(pszSrc > pszFullPath)
+        {
+            if (*pszSrc == RTPATH_DELIMITER)
             {
-                *src = 0;
+                *pszSrc = 0;
                 rc = RTPathQueryInfo (pszFullPath, &info, RTFSOBJATTRADD_NOTHING);
-                *src = RTPATH_DELIMITER;
+                *pszSrc = RTPATH_DELIMITER;
                 if (rc == VINF_SUCCESS)
                 {
 #ifdef DEBUG
-                    *src = 0;
+                    *pszSrc = 0;
                     Log(("Found valid partial path %s\n", pszFullPath));
-                    *src = RTPATH_DELIMITER;
+                    *pszSrc = RTPATH_DELIMITER;
 #endif
                     break;
@@ -352,14 +358,14 @@
             }
 
-            src--;
-        }
-        Assert(*src == RTPATH_DELIMITER && RT_SUCCESS(rc));
-        if (    *src == RTPATH_DELIMITER
+            pszSrc--;
+        }
+        Assert(*pszSrc == RTPATH_DELIMITER && RT_SUCCESS(rc));
+        if (    *pszSrc == RTPATH_DELIMITER
             &&  RT_SUCCESS(rc))
         {
-            src++;
+            pszSrc++;
             for(;;)
             {
-                char *end = src;
+                char *end = pszSrc;
                 bool fEndOfString = true;
 
@@ -375,9 +381,9 @@
                     fEndOfString = false;
                     *end = 0;
-                    rc = RTPathQueryInfo(src, &info, RTFSOBJATTRADD_NOTHING);
+                    rc = RTPathQueryInfo(pszSrc, &info, RTFSOBJATTRADD_NOTHING);
                     Assert(rc == VINF_SUCCESS || rc == VERR_FILE_NOT_FOUND || rc == VERR_PATH_NOT_FOUND);
                 }
                 else
-                if (end == src)
+                if (end == pszSrc)
                     rc = VINF_SUCCESS;  /* trailing delimiter */
                 else
@@ -387,5 +393,5 @@
                 {
                     /* path component is invalid; try to correct the casing */
-                    rc = vbsfCorrectCasing(pszFullPath, src);
+                    rc = vbsfCorrectCasing(pszFullPath, pszSrc, cbFullPath - (pszFullPath - pszSrc));
                     if (RT_FAILURE(rc))
                     {
@@ -400,5 +406,5 @@
 
                 *end = RTPATH_DELIMITER;
-                src = end + 1;
+                pszSrc = end + 1;
             }
             if (RT_FAILURE(rc))
@@ -430,22 +436,22 @@
     RTLogFlags(NULL, "unbuffered");
 
-    strcpy(szTest, "c:\\test Dir\\z.bAt");
-    testCase(szTest);
-    strcpy(szTest, "c:\\test dir\\z.bAt");
-    testCase(szTest);
-    strcpy(szTest, "c:\\test dir\\SUBDIR\\z.bAt");
-    testCase(szTest);
-    strcpy(szTest, "c:\\test dir\\SUBDiR\\atestje.bat");
-    testCase(szTest);
-    strcpy(szTest, "c:\\TEST dir\\subDiR\\aTestje.baT");
-    testCase(szTest);
-    strcpy(szTest, "c:\\TEST dir\\subDiR\\*");
-    testCase(szTest, true);
-    strcpy(szTest, "c:\\TEST dir\\subDiR\\");
-    testCase(szTest ,true);
-    strcpy(szTest, "c:\\test dir\\SUBDIR\\");
-    testCase(szTest);
-    strcpy(szTest, "c:\\test dir\\invalid\\SUBDIR\\test.bat");
-    testCase(szTest);
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test Dir\\z.bAt"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test dir\\z.bAt"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test dir\\SUBDIR\\z.bAt"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test dir\\SUBDiR\\atestje.bat"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\TEST dir\\subDiR\\aTestje.baT"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\TEST dir\\subDiR\\*"));
+    testCase(szTest, sizeof(szTest), true);
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\TEST dir\\subDiR\\"));
+    testCase(szTest ,sizeof(szTest), true);
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test dir\\SUBDIR\\"));
+    testCase(szTest, sizeof(szTest));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szTest, sizeof(szTest), "c:\\test dir\\invalid\\SUBDIR\\test.bat"));
+    testCase(szTest, sizeof(szTest));
     return 0;
 }
Index: /trunk/src/VBox/Main/src-server/linux/PerformanceLinux.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/linux/PerformanceLinux.cpp	(revision 103284)
+++ /trunk/src/VBox/Main/src-server/linux/PerformanceLinux.cpp	(revision 103285)
@@ -531,6 +531,8 @@
         return;
     }
-    strcat(szVolInfo, "/" VBOXVOLINFO_NAME " ");
-    strcat(szVolInfo, pcszVolume);
+    vrc = RTStrCat(szVolInfo, sizeof(szVolInfo), "/" VBOXVOLINFO_NAME " ");
+    AssertRCReturnVoid(vrc);
+    vrc = RTStrCat(szVolInfo, sizeof(szVolInfo), pcszVolume);
+    AssertRCReturnVoid(vrc);
 
     FILE *fp = popen(szVolInfo, "r");
Index: /trunk/src/VBox/Main/src-server/xpcom/server_module.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/xpcom/server_module.cpp	(revision 103284)
+++ /trunk/src/VBox/Main/src-server/xpcom/server_module.cpp	(revision 103285)
@@ -75,5 +75,5 @@
 
 /** Name of the server executable. */
-const char VBoxSVC_exe[] = RTPATH_SLASH_STR "VBoxSVC" HOSTSUFF_EXE;
+const char g_szVBoxSVC_exe[] = RTPATH_SLASH_STR "VBoxSVC" HOSTSUFF_EXE;
 
 enum
@@ -88,6 +88,6 @@
  *  Full path to the VBoxSVC executable.
  */
-static char VBoxSVCPath[RTPATH_MAX];
-static bool IsVBoxSVCPathSet = false;
+static char g_szVBoxSVCPath[RTPATH_MAX];
+static bool g_fIsVBoxSVCPathSet = false;
 
 /*
@@ -116,5 +116,5 @@
         const char *apszArgs[] =
         {
-            VBoxSVCPath,
+            g_szVBoxSVCPath,
             "--auto-shutdown",
             "--inherit-startup-pipe",
@@ -132,5 +132,5 @@
         hStdNil.u.hFile = NIL_RTFILE;
 
-        vrc = RTProcCreateEx(VBoxSVCPath, apszArgs, RTENV_DEFAULT,
+        vrc = RTProcCreateEx(g_szVBoxSVCPath, apszArgs, RTENV_DEFAULT,
                              RTPROC_FLAGS_DETACHED, &hStdNil, &hStdNil, &hStdNil,
                              NULL /* pszAsUser */, NULL /* pszPassword */, NULL /* pExtraData */,
@@ -187,5 +187,5 @@
         }
 
-        if (!IsVBoxSVCPathSet)
+        if (!g_fIsVBoxSVCPathSet)
         {
             /* Get the directory containing XPCOM components -- the VBoxSVC
@@ -204,5 +204,5 @@
 
                     LogFlowFunc(("component directory = \"%s\"\n", path.get()));
-                    AssertBreakStmt(path.Length() + strlen(VBoxSVC_exe) < RTPATH_MAX,
+                    AssertBreakStmt(path.Length() + strlen(g_szVBoxSVC_exe) < RTPATH_MAX,
                                     rc = NS_ERROR_FAILURE);
 
@@ -212,15 +212,17 @@
                     if (cbKernArch > 0)
                     {
-                        sprintf(VBoxSVCPath, "/opt/VirtualBox/%s%s", achKernArch, VBoxSVC_exe);
-                        IsVBoxSVCPathSet = true;
+                        sprintf(g_szVBoxSVCPath, "/opt/VirtualBox/%s%s", achKernArch, g_szVBoxSVC_exe);
+                        g_fIsVBoxSVCPathSet = true;
                     }
                     else
                         rc = NS_ERROR_UNEXPECTED;
 #else
-                    strcpy(VBoxSVCPath, path.get());
-                    RTPathStripFilename(VBoxSVCPath);
-                    strcat(VBoxSVCPath, VBoxSVC_exe);
-
-                    IsVBoxSVCPathSet = true;
+                    int vrc = RTStrCopy(g_szVBoxSVCPath, sizeof(g_szVBoxSVCPath), path.get());
+                    AssertRCBreakStmt(vrc, rc = NS_ERROR_FAILURE);
+                    RTPathStripFilename(g_szVBoxSVCPath);
+                    vrc = RTStrCat(g_szVBoxSVCPath, sizeof(g_szVBoxSVCPath), g_szVBoxSVC_exe);
+                    AssertRCBreakStmt(vrc, rc = NS_ERROR_FAILURE);
+
+                    g_fIsVBoxSVCPathSet = true;
 #endif
                 }
@@ -247,5 +249,5 @@
             if (NS_FAILED(rc))
             {
-                LogFlowFunc(("Starting server \"%s\"...\n", VBoxSVCPath));
+                LogFlowFunc(("Starting server \"%s\"...\n", g_szVBoxSVCPath));
 
                 startedOnce = true;
Index: /trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp
===================================================================
--- /trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp	(revision 103284)
+++ /trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp	(revision 103285)
@@ -610,12 +610,16 @@
             if (pszName)
             {
-                size_t cchName = strlen(pszName);
-                char *pszExtFileBuf = (char *)alloca(cchName + strlen(pszExt) + 1);
-                if (pszExtFileBuf)
-                {
-                    memcpy(pszExtFileBuf, pszName, cchName + 1);
-                    RTPathStripSuffix(pszExtFileBuf);
-                    pszExtFile = strcat(pszExtFileBuf, pszExt);
-                }
+                size_t const cchName       = strlen(pszName);
+                size_t const cchExtFileBuf = cchName + strlen(pszExt) + 1;
+
+                char *pszExtFileBuf = (char *)alloca(cchExtFileBuf);
+                AssertPtrReturn(pszExtFileBuf, VERR_NO_MEMORY);
+
+                memcpy(pszExtFileBuf, pszName, cchName + 1);
+                RTPathStripSuffix(pszExtFileBuf);
+                int rc2 = RTStrCat(pszExtFileBuf, cchExtFileBuf, pszExt);
+                AssertRCReturn(rc2, rc2);
+
+                pszExtFile = pszExtFileBuf;
             }
         }
Index: /trunk/src/VBox/Runtime/r3/xml.cpp
===================================================================
--- /trunk/src/VBox/Runtime/r3/xml.cpp	(revision 103284)
+++ /trunk/src/VBox/Runtime/r3/xml.cpp	(revision 103285)
@@ -2310,5 +2310,7 @@
         if (RT_FAILURE(rc))
             throw EIPRTFailure(rc, "RTStrCopy");
-        strcat(szTmpFilename, s_pszTmpSuff);
+        rc = RTStrCat(szTmpFilename, sizeof(szTmpFilename), s_pszTmpSuff);
+        if (RT_FAILURE(rc))
+            throw EIPRTFailure(rc, "RTStrCat");
 
         char szPrevFilename[RTPATH_MAX];
Index: /trunk/src/VBox/Runtime/testcase/tstRTR0CommonDriver.h
===================================================================
--- /trunk/src/VBox/Runtime/testcase/tstRTR0CommonDriver.h	(revision 103284)
+++ /trunk/src/VBox/Runtime/testcase/tstRTR0CommonDriver.h	(revision 103285)
@@ -121,5 +121,5 @@
         rc = RTPathAppend(szPath, RTPATH_MAX, pszTestServiceName);
     if (RT_SUCCESS(rc))
-        strcat(szPath, ".r0");
+        rc = RTStrCat(szPath, sizeof(szPath), ".r0");
     if (RT_FAILURE(rc))
     {
@@ -129,6 +129,13 @@
 
     char szSrvReqHandler[sizeof(g_szSrvName) + sizeof("SrvReqHandler")];
-    strcpy(szSrvReqHandler, pszTestServiceName);
-    strcat(szSrvReqHandler, "SrvReqHandler");
+    rc = RTStrCopy(szSrvReqHandler, sizeof(szSrvReqHandler), pszTestServiceName);
+    if (RT_SUCCESS(rc))
+        rc = RTStrCat(szSrvReqHandler, sizeof(szSrvReqHandler), "SrvReqHandler");
+    if (RT_FAILURE(rc))
+    {
+        RTTestFailed(g_hTest, "RTStrCat failed with rc=%Rrc\n", rc);
+        return RTTestSummaryAndDestroy(g_hTest);
+    }
+
     for (size_t off = 0; RT_C_IS_LOWER(szSrvReqHandler[off]); off++)
         szSrvReqHandler[off] = RT_C_TO_UPPER(szSrvReqHandler[off]);
Index: /trunk/src/VBox/VMM/VMMR3/DBGFR3PlugIn.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/DBGFR3PlugIn.cpp	(revision 103284)
+++ /trunk/src/VBox/VMM/VMMR3/DBGFR3PlugIn.cpp	(revision 103285)
@@ -280,6 +280,8 @@
     int rc = RTPathAppend(pszModule, cchModule, DBGF_PLUG_IN_PREFIX);
     AssertRCReturn(rc, VERR_TRY_AGAIN);
-    strcat(&pszModule[cchPath], pPlugIn->szName);
-    strcat(&pszModule[cchPath + sizeof(DBGF_PLUG_IN_PREFIX) - 1 + pPlugIn->cchName], pszSuff);
+    rc = RTStrCat(pszModule, cchModule, pPlugIn->szName);
+    AssertRCReturn(rc, VERR_TRY_AGAIN);
+    rc = RTStrCat(pszModule, cchModule, pszSuff);
+    AssertRCReturn(rc, VERR_TRY_AGAIN);
     Assert(strlen(pszModule) < cchModule - 4);
 
@@ -480,5 +482,6 @@
     rc = RTPathAppend(szPath, sizeof(szPath) - cchSuff, DBGF_PLUG_IN_PREFIX "*");
     AssertRCReturnVoid(rc);
-    strcat(szPath, pszSuff);
+    rc = RTStrCat(szPath, sizeof(szPath), pszSuff);
+    AssertRCReturnVoid(rc);
 
     RTDIR hDir;
Index: /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp
===================================================================
--- /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp	(revision 103284)
+++ /trunk/src/VBox/ValidationKit/utils/fs/FsPerf.cpp	(revision 103285)
@@ -2954,5 +2954,5 @@
 {
     char szRenamed[FSPERF_MAX_PATH];
-    strcat(strcpy(szRenamed, pszFile), "-renamed");
+    RTTESTI_CHECK_RC_OK(RTStrCat(RTStrCopy2(szRenamed, sizeof(szRenamed), pszFile), sizeof(szRenamed), "-renamed"));
     if (!(iIteration & 1))
         return RTPathRename(pszFile, szRenamed, 0);
@@ -2971,10 +2971,12 @@
 
     /* Non-existing files. */
-    strcpy(szPath, InEmptyDir(RT_STR_TUPLE("other-no-such-file")));
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szPath, sizeof(szPath), InEmptyDir(RT_STR_TUPLE("other-no-such-file"))));
     RTTESTI_CHECK_RC(RTPathRename(InEmptyDir(RT_STR_TUPLE("no-such-file")), szPath, 0), VERR_FILE_NOT_FOUND);
-    strcpy(szPath, InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "other-no-such-file")));
+
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szPath, sizeof(szPath), InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "other-no-such-file"))));
     RTTESTI_CHECK_RC(RTPathRename(InEmptyDir(RT_STR_TUPLE("no-such-dir" RTPATH_SLASH_STR "no-such-file")), szPath, 0),
                      FSPERF_VERR_PATH_NOT_FOUND);
-    strcpy(szPath, InEmptyDir(RT_STR_TUPLE("other-no-such-file")));
+
+    RTTESTI_CHECK_RC_OK(RTStrCopy(szPath, sizeof(szPath), InEmptyDir(RT_STR_TUPLE("other-no-such-file"))));
     RTTESTI_CHECK_RC(RTPathRename(InDir(RT_STR_TUPLE("known-file" RTPATH_SLASH_STR "no-such-file")), szPath, 0), VERR_PATH_NOT_FOUND);
 
@@ -2983,10 +2985,10 @@
                                      RTFILE_O_CREATE_REPLACE | RTFILE_O_DENY_NONE | RTFILE_O_WRITE), VINF_SUCCESS);
     RTTESTI_CHECK_RC(RTFileClose(hFile1), VINF_SUCCESS);
-    strcat(strcpy(szPath, g_szDir), "-no-such-dir" RTPATH_SLASH_STR "file16");
+    RTTESTI_CHECK_RC_OK(RTStrCat(RTStrCopy2(szPath, sizeof(szPath), g_szDir), sizeof(szPath), "-no-such-dir" RTPATH_SLASH_STR "file16"));
     RTTESTI_CHECK_RC(RTPathRename(szPath, g_szDir, 0), FSPERF_VERR_PATH_NOT_FOUND);
     RTTESTI_CHECK_RC(RTPathRename(g_szDir, szPath, 0), FSPERF_VERR_PATH_NOT_FOUND);
 
     /* Shallow: */
-    strcat(strcpy(szPath, g_szDir), "-other");
+    RTTESTI_CHECK_RC_OK(RTStrCat(RTStrCopy2(szPath, sizeof(szPath), g_szDir), sizeof(szPath), "-other"));
     PROFILE_FN(RTPathRename(iIteration & 1 ? szPath : g_szDir, iIteration & 1 ? g_szDir : szPath, 0), g_nsTestRun, "RTPathRename");
 
@@ -2996,5 +2998,5 @@
     RTTESTI_CHECK_RC(RTFileClose(hFile1), VINF_SUCCESS);
 
-    strcat(strcpy(szPath, g_szDeepDir), "-other");
+    RTTESTI_CHECK_RC_OK(RTStrCat(RTStrCopy2(szPath, sizeof(szPath), g_szDeepDir), sizeof(szPath), "-other"));
     PROFILE_FN(RTPathRename(iIteration & 1 ? szPath : g_szDeepDir, iIteration & 1 ? g_szDeepDir : szPath, 0),
                g_nsTestRun, "RTPathRename/deep");
