1.6.3a
This commit is contained in:
parent
b4839f4d80
commit
cb9bfcafb4
|
@ -11,6 +11,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||
|
||||
### Fixed
|
||||
- fixed issue with auto delete box on sandman start [#2555](https://github.com/sandboxie-plus/Sandboxie/issues/2555)
|
||||
- fixed issue with windows 11 contetx menu when sandman was not already running [2284](https://github.com/sandboxie-plus/Sandboxie/issues/2284)
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -844,22 +844,6 @@ HANDLE ProcessServer::RunSandboxedGetToken(
|
|||
ShouldAdjustDacl = true;
|
||||
|
||||
}
|
||||
/*else if (...) {
|
||||
|
||||
//
|
||||
// use session token
|
||||
//
|
||||
|
||||
ULONG SessionId = PipeServer::GetCallerSessionId();
|
||||
|
||||
ok = WTSQueryUserToken(SessionId, &OldTokenHandle);
|
||||
|
||||
if (! ok)
|
||||
return NULL;
|
||||
|
||||
ShouldAdjustSessionId = false;
|
||||
|
||||
}*/
|
||||
else
|
||||
// OriginalToken BEGIN
|
||||
if (!SbieApi_QueryConfBool(boxname, L"NoSecurityIsolation", FALSE) && !SbieApi_QueryConfBool(boxname, L"OriginalToken", FALSE))
|
||||
|
@ -887,6 +871,40 @@ HANDLE ProcessServer::RunSandboxedGetToken(
|
|||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
typedef LONG (WINAPI *P_GetApplicationUserModelId)(
|
||||
HANDLE hProcess, UINT32 * applicationUserModelIdLength, PWSTR applicationUserModelId);
|
||||
|
||||
static P_GetApplicationUserModelId pGetApplicationUserModelId = (P_GetApplicationUserModelId)-1;
|
||||
if ((UINT_PTR)pGetApplicationUserModelId == -1)
|
||||
pGetApplicationUserModelId = (P_GetApplicationUserModelId)GetProcAddress(_Kernel32, "GetApplicationUserModelId");
|
||||
|
||||
if (pGetApplicationUserModelId) {
|
||||
|
||||
//
|
||||
// when the calling application is a modern app we can't use it's token
|
||||
//
|
||||
|
||||
UINT32 length = 0;
|
||||
LONG rc = pGetApplicationUserModelId(CallerProcessHandle, &length, NULL);
|
||||
if (rc != APPMODEL_ERROR_NO_APPLICATION)
|
||||
{
|
||||
//
|
||||
// use session token
|
||||
//
|
||||
|
||||
ULONG SessionId = PipeServer::GetCallerSessionId();
|
||||
|
||||
ok = WTSQueryUserToken(SessionId, &OldTokenHandle);
|
||||
|
||||
if (!ok)
|
||||
return NULL;
|
||||
|
||||
ShouldAdjustSessionId = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! OldTokenHandle) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue