summaryrefslogtreecommitdiff
path: root/src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp')
-rw-r--r--src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp b/src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp
index 95c4e9b26..a991619e7 100644
--- a/src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp
+++ b/src/VBox/Runtime/r3/os2/rtProcInitExePath-os2.cpp
@@ -1,4 +1,4 @@
-/* $Id: rtProcInitExePath-os2.cpp 28800 2010-04-27 08:22:32Z vboxsync $ */
+/* $Id: rtProcInitExePath-os2.cpp 28929 2010-04-30 11:26:46Z vboxsync $ */
/** @file
* IPRT - rtProcInitName, OS/2.
*/
@@ -47,16 +47,14 @@ DECLHIDDEN(int) rtProcInitExePath(char *pszPath, size_t cchPath)
*/
_execname(pszPath, cchPath);
- char *pszTmp;
- int rc = rtPathFromNative(&pszTmp, pszPath);
- AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhsx\n", rc, pszPath, cchPath, pszPath), rc);
-
- size_t cch = strlen(pszTmp);
- AssertReturn(cch <= cchPath, VERR_BUFFER_OVERFLOW);
-
- memcpy(pszPath, pszTmp, cch + 1);
- RTStrFree(pszTmp);
-
- return VINF_SUCCESS;
+ char const *pszTmp;
+ int rc = rtPathFromNative(&pszTmp, pszPath, NULL);
+ AssertMsgRCReturn(rc, ("rc=%Rrc pszLink=\"%s\"\nhex: %.*Rhxs\n", rc, pszPath, cchPath, pszPath), rc);
+ if (pszTmp != pszPath)
+ {
+ rc = RTStrCopy(pszPath, cchPath, pszTmp);
+ rtPathFreeIprt(pszTmp, pszPath);
+ }
+ return rc;
}