VirtualBox

Changeset 27729 in vbox for trunk/src/VBox/Additions


Ignore:
Timestamp:
Mar 26, 2010 11:06:22 AM (15 years ago)
Author:
vboxsync
Message:

Additions/Solaris: SharedFolders, fix permissions for opening readonly files (public #6320)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/solaris/SharedFolders/vboxfs_prov.c

    r26176 r27729  
    288288         * try read only.
    289289         */
     290        bzero(&parms, sizeof(parms));
    290291        str = sfprov_string(path, &size);
    291         parms.Handle = 0;
     292        parms.Handle = SHFL_HANDLE_NIL;
    292293        parms.Info.cbObject = 0;
    293294        parms.CreateFlags = SHFL_CF_ACT_FAIL_IF_NEW | SHFL_CF_ACCESS_READWRITE;
    294295        rc = vboxCallCreate(&vbox_client, &mnt->map, str, &parms);
    295 
    296         if (RT_FAILURE(rc)) {
     296        if (RT_FAILURE(rc) && rc != VERR_ACCESS_DENIED) {
    297297                kmem_free(str, size);
    298                 return (EINVAL);
     298                return RTErrConvertToErrno(rc);
    299299        }
    300300        if (parms.Handle == SHFL_HANDLE_NIL) {
    301                 if (parms.Result == SHFL_NO_RESULT ||
    302                     parms.Result == SHFL_PATH_NOT_FOUND ||
     301                if (parms.Result == SHFL_PATH_NOT_FOUND ||
    303302                    parms.Result == SHFL_FILE_NOT_FOUND) {
    304303                        kmem_free(str, size);
    305                         return (ENOENT);
     304                        return ENOENT;
    306305                }
    307306                parms.CreateFlags =
     
    310309                if (RT_FAILURE(rc)) {
    311310                        kmem_free(str, size);
    312                         return (EINVAL);
     311                        return RTErrConvertToErrno(rc);
    313312                }
    314313                if (parms.Handle == SHFL_HANDLE_NIL) {
    315314                        kmem_free(str, size);
    316                         return (ENOENT);
     315                        return RTErrConvertToErrno(rc);
    317316                }
    318317        }
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