Changeset 99365 in vbox
- Timestamp:
- Apr 10, 2023 5:28:33 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 156776
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest-win.cpp
r98103 r99365 2648 2648 { 2649 2649 if (fUsersMember) 2650 fRequestor = (fRequestor & ~VMMDEV_REQUESTOR_USR_MASK) | VMMDEV_REQUESTOR_USR_ GUEST;2650 fRequestor = (fRequestor & ~VMMDEV_REQUESTOR_USR_MASK) | VMMDEV_REQUESTOR_USR_USER; 2651 2651 else if (fGuestsMember) 2652 2652 fRequestor = (fRequestor & ~VMMDEV_REQUESTOR_USR_MASK) | VMMDEV_REQUESTOR_USR_GUEST; … … 2658 2658 RTMemTmpFree(pCurGroupsFree); 2659 2659 ZwClose(hToken); 2660 2661 /* 2662 * Determine whether we should set VMMDEV_REQUESTOR_USER_DEVICE or not. 2663 * 2664 * The purpose here is to differentiate VBoxService accesses 2665 * from VBoxTray and VBoxControl, as VBoxService should be allowed to 2666 * do more than the latter two. VBoxService normally runs under the 2667 * system account which is easily detected, but for debugging and 2668 * similar purposes we also allow an elevated admin to run it as well. 2669 */ 2670 if ( (fRequestor & VMMDEV_REQUESTOR_TRUST_MASK) == VMMDEV_REQUESTOR_TRUST_UNTRUSTED /* general paranoia wrt system account */ 2671 || (fRequestor & VMMDEV_REQUESTOR_TRUST_MASK) == VMMDEV_REQUESTOR_TRUST_LOW /* ditto */ 2672 || (fRequestor & VMMDEV_REQUESTOR_TRUST_MASK) == VMMDEV_REQUESTOR_TRUST_MEDIUM /* ditto */ 2673 || !( (fRequestor & VMMDEV_REQUESTOR_USR_MASK) == VMMDEV_REQUESTOR_USR_SYSTEM 2674 || ( ( (fRequestor & VMMDEV_REQUESTOR_GRP_WHEEL) 2675 || (fRequestor & VMMDEV_REQUESTOR_USR_MASK) == VMMDEV_REQUESTOR_USR_ROOT) 2676 && ( (fRequestor & VMMDEV_REQUESTOR_TRUST_MASK) >= VMMDEV_REQUESTOR_TRUST_HIGH 2677 || (fRequestor & VMMDEV_REQUESTOR_TRUST_MASK) == VMMDEV_REQUESTOR_TRUST_NOT_GIVEN)) )) 2678 fRequestor |= VMMDEV_REQUESTOR_USER_DEVICE; 2660 2679 } 2661 2680 else 2681 { 2662 2682 LogRel(("vgdrvNtCalcRequestorFlags: NtOpenProcessToken query failed: %#x\n", rcNt)); 2683 fRequestor |= VMMDEV_REQUESTOR_USER_DEVICE; 2684 } 2663 2685 2664 2686 Log5(("vgdrvNtCalcRequestorFlags: returns %#x\n", fRequestor));
Note:
See TracChangeset
for help on using the changeset viewer.