VirtualBox

Changeset 104565 in vbox


Ignore:
Timestamp:
May 8, 2024 4:30:28 PM (7 months ago)
Author:
vboxsync
Message:

Guest Control/VBoxService: Return the full path of the created file / directory and not only the (filled out) template. bugref:9783

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlSession.cpp

    r103471 r104565  
    22742274     */
    22752275    char     szTemplate[RTPATH_MAX];
     2276    char     szTempPathAbs[RTPATH_MAX] = ""; /* Absolute path to temporary directory / file created. */
    22762277    char     szPath[RTPATH_MAX];
    22772278    uint32_t fFlags = GSTCTL_CREATETEMP_F_NONE;
     
    23032304            if (RT_SUCCESS(rc))
    23042305            {
    2305                 char szTemplateWithPath[RTPATH_MAX] = "";
    23062306                if (szPath[0] != '\0')
    23072307                {
    2308                     rc = RTStrCopy(szTemplateWithPath, sizeof(szTemplateWithPath), szPath);
     2308                    rc = RTStrCopy(szTempPathAbs, sizeof(szTempPathAbs), szPath);
    23092309                    if (RT_FAILURE(rc))
    23102310                    {
     
    23152315                else
    23162316                {
    2317                     rc = RTPathTemp(szTemplateWithPath, sizeof(szTemplateWithPath));
     2317                    rc = RTPathTemp(szTempPathAbs, sizeof(szTempPathAbs));
    23182318                    if (RT_FAILURE(rc))
    23192319                    {
     
    23252325                if (RT_SUCCESS(rc))
    23262326                {
    2327                     rc = RTPathAppend(szTemplateWithPath, sizeof(szTemplateWithPath), szTemplate);
     2327                    rc = RTPathAppend(szTempPathAbs, sizeof(szTempPathAbs), szTemplate);
    23282328                    if (RT_FAILURE(rc))
    23292329                    {
     
    23372337                        {
    23382338                            if (fSecure)
    2339                                 rc = RTDirCreateTempSecure(szTemplateWithPath); /* File mode is fixed to 0700. */
     2339                                rc = RTDirCreateTempSecure(szTempPathAbs); /* File mode is fixed to 0700. */
    23402340                            else
    2341                                 rc = RTDirCreateTemp(szTemplate, fMode);
     2341                                rc = RTDirCreateTemp(szTempPathAbs, fMode);
    23422342                        }
    23432343                        else /* File */
    23442344                        {
    23452345                            if (fSecure)
    2346                                 rc = RTFileCreateTempSecure(szTemplateWithPath); /* File mode is fixed to 0700. */
     2346                                rc = RTFileCreateTempSecure(szTempPathAbs); /* File mode is fixed to 0700. */
    23472347                            else
    2348                                 rc = RTFileCreateTemp(szTemplate, fMode);
     2348                                rc = RTFileCreateTemp(szTempPathAbs, fMode);
    23492349                        }
    23502350
    2351                         VGSvcVerbose(3, "Creating temporary %s (szTemplate='%s', fFlags=%#x, fMode=%#x) -> rc=%Rrc\n",
    2352                                      pszWhat, szTemplate, fFlags, fMode, rc);
     2351                        VGSvcVerbose(3, "Creating temporary %s (szTemplate='%s', fFlags=%#x, fMode=%#x) -> %s, rc=%Rrc\n",
     2352                                     pszWhat, szTemplate, fFlags, fMode, szTempPathAbs, rc);
    23532353                    }
    23542354                }
     
    23642364         * Report result back to host.
    23652365         */
    2366         int rc2 = VbglR3GuestCtrlFsCbCreateTemp(pHostCtx, rc, szTemplate);
     2366        int rc2 = VbglR3GuestCtrlFsCbCreateTemp(pHostCtx, rc, szTempPathAbs);
    23672367        if (RT_FAILURE(rc2))
    23682368        {
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette