This commit is contained in:
DavidXanatos 2021-12-03 12:25:13 +01:00
parent d7758071f6
commit c31249a2a8
4 changed files with 34 additions and 23 deletions

View File

@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [1.0.1 / 5.55.1] - 2021-12-03
### Changed
- rolled back changed to "OpenClsid=..." handling
### Fixed
- issue with read only paths introduced in 1.0.0
- fixed BSOD issue introduced in the 1.0.0 build
## [1.0.0 / 5.55.0] - 2021-11-17
### Added

View File

@ -414,9 +414,6 @@ _FX void Com_LoadClsidList(const WCHAR* setting, GUID** pClsids, ULONG* pNumClsi
_FX BOOLEAN SbieDll_IsOpenClsid(
REFCLSID rclsid, ULONG clsctx, const WCHAR *BoxName)
{
ULONG index;
GUID *guid;
static const GUID CLSID_WinMgmt = {
0x8BC3F05E, 0xD86B, 0x11D0,
{ 0xA0, 0x75, 0x00, 0xC0, 0x4F, 0xB6, 0x88, 0x20 } };
@ -443,6 +440,9 @@ _FX BOOLEAN SbieDll_IsOpenClsid(
if (clsctx & CLSCTX_LOCAL_SERVER) {
ULONG index;
GUID *guid;
//
// check against list of built-in CLSID exclusions
//
@ -455,26 +455,25 @@ _FX BOOLEAN SbieDll_IsOpenClsid(
return TRUE;
}
//
// initialize list of user-configured CLSID exclusions
//
static const WCHAR* setting = L"OpenClsid";
Com_LoadClsidList(setting , &Com_OpenClsids, &Com_NumOpenClsids, BoxName);
//
// check against list of user-configured CLSID exclusions
//
for (index = 0; index < Com_NumOpenClsids; ++index) {
guid = &Com_OpenClsids[index];
if (memcmp(guid, rclsid, sizeof(GUID)) == 0 /*|| memcmp(guid, &CLSID_Null, sizeof(GUID)) == 0*/)
return TRUE;
}
}
//
// initialize list of user-configured CLSID exclusions
//
static const WCHAR* setting = L"OpenClsid";
Com_LoadClsidList(setting , &Com_OpenClsids, &Com_NumOpenClsids, BoxName);
//
// check against list of user-configured CLSID exclusions
//
for (index = 0; index < Com_NumOpenClsids; ++index) {
guid = &Com_OpenClsids[index];
if (memcmp(guid, rclsid, sizeof(GUID)) == 0 /*|| memcmp(guid, &CLSID_Null, sizeof(GUID)) == 0*/)
return TRUE;
}
if (Com_IsFirewallClsid(rclsid, BoxName))
return TRUE;

View File

@ -173,7 +173,7 @@ _FX BOOLEAN Dll_InitPathList2(
#ifdef USE_MATCH_PATH_EX
if (ok && read) {
path_code = (path_code & 0xFF00) | 'r';
ok = Dll_InitPathList3(Dll_PathListAnchor->pool, path_code, write);
ok = Dll_InitPathList3(Dll_PathListAnchor->pool, path_code, read);
}
#endif

View File

@ -1900,7 +1900,7 @@ _FX NTSTATUS File_Api_Rename(PROCESS *proc, ULONG64 *parms)
ExAcquireResourceSharedLite(proc->file_lock, TRUE);
#ifdef USE_MATCH_PATH_EX
mp_flags = Process_MatchPathEx(proc, path, path_len, L'f',
mp_flags = Process_MatchPathEx(proc, path, wcslen(path), L'f',
&proc->normal_file_paths, &proc->open_file_paths, &proc->closed_file_paths,
&proc->read_file_paths, &proc->write_file_paths, NULL);