Skip to content

Commit 789667f

Browse files
committed
nsp: collect open-coded session GUID check
1 parent f1c7f72 commit 789667f

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

exch/nsp/nsp_interface.cpp

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,11 @@ static void nsp_interface_position_in_table(const STAT *pstat,
684684
}
685685
}
686686

687+
static inline bool session_check(const NSPI_HANDLE &h, const ab_tree::ab_base &base)
688+
{
689+
return g_session_check && base.guid() == h.guid;
690+
}
691+
687692
ec_error_t nsp_interface_update_stat(NSPI_HANDLE handle, uint32_t reserved,
688693
STAT *pstat, int32_t *pdelta)
689694
{
@@ -692,7 +697,7 @@ ec_error_t nsp_interface_update_stat(NSPI_HANDLE handle, uint32_t reserved,
692697
if (pstat == nullptr || pstat->codepage == CP_WINUNICODE)
693698
return ecNotSupported;
694699
auto pbase = ab_tree::AB.get(handle.guid);
695-
if (pbase == nullptr || (g_session_check && pbase->guid() != handle.guid))
700+
if (pbase == nullptr || !session_check(handle, *pbase))
696701
return ecError;
697702

698703
uint32_t init_row = 0, total = 0;
@@ -789,7 +794,7 @@ ec_error_t nsp_interface_query_rows(NSPI_HANDLE handle, uint32_t flags,
789794
return ecTableTooBig;
790795
}
791796
auto pbase = ab_tree::AB.get(handle.guid);
792-
if (pbase == nullptr || (g_session_check && pbase->guid() != handle.guid))
797+
if (pbase == nullptr || !session_check(handle, *pbase))
793798
return ecError;
794799
auto rowset = common_util_proprowset_init();
795800
if (rowset == nullptr)
@@ -940,7 +945,7 @@ ec_error_t nsp_interface_seek_entries(NSPI_HANDLE handle, uint32_t reserved,
940945
return ecTableTooBig;
941946
}
942947
auto pbase = ab_tree::AB.get(handle.guid);
943-
if (pbase == nullptr || (g_session_check && pbase->guid() != handle.guid))
948+
if (pbase == nullptr || !session_check(handle, *pbase))
944949
return ecError;
945950
auto rowset = common_util_proprowset_init();
946951
if (rowset == nullptr)
@@ -1193,7 +1198,7 @@ ec_error_t nsp_interface_get_matches(NSPI_HANDLE handle, uint32_t reserved1,
11931198
if (reserved1 != 0 || ppropname != nullptr)
11941199
return ecNotSupported;
11951200
auto base = ab_tree::AB.get(handle.guid);
1196-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1201+
if (base == nullptr || !session_check(handle, *base))
11971202
return ecError;
11981203
auto outmids = common_util_proptagarray_init();
11991204
if (outmids == nullptr)
@@ -1362,7 +1367,7 @@ ec_error_t nsp_interface_resort_restriction(NSPI_HANDLE handle, uint32_t reserve
13621367
if (outmids->pproptag == nullptr)
13631368
return ecServerOOM;
13641369
auto base = ab_tree::AB.get(handle.guid);
1365-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1370+
if (base == nullptr || !session_check(handle, *base))
13661371
return ecError;
13671372

13681373
size_t count = 0;
@@ -1407,7 +1412,7 @@ ec_error_t nsp_interface_dntomid(NSPI_HANDLE handle, uint32_t reserved,
14071412
if (pnames == nullptr)
14081413
return ecSuccess;
14091414
auto base = ab_tree::AB.get(handle.guid);
1410-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1415+
if (base == nullptr || !session_check(handle, *base))
14111416
return ecError;
14121417
auto outmids = ndr_stack_anew<LPROPTAG_ARRAY>(NDR_STACK_OUT);
14131418
if (outmids == nullptr)
@@ -1543,7 +1548,7 @@ ec_error_t nsp_interface_get_proplist(NSPI_HANDLE handle, uint32_t flags,
15431548
if (mid == 0)
15441549
return ecInvalidObject;
15451550
auto base = ab_tree::AB.get(handle.guid);
1546-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1551+
if (base == nullptr || !session_check(handle, *base))
15471552
return ecError;
15481553
*tags = ndr_stack_anew<LPROPTAG_ARRAY>(NDR_STACK_OUT);
15491554
if (*tags == nullptr)
@@ -1590,7 +1595,7 @@ ec_error_t nsp_interface_get_props(NSPI_HANDLE handle, uint32_t flags,
15901595
return ecNotSupported;
15911596
bool b_ephid = flags & fEphID;
15921597
auto base = ab_tree::AB.get(handle.guid);
1593-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1598+
if (base == nullptr || !session_check(handle, *base))
15941599
return ecError;
15951600
if (g_nsp_trace >= 2) {
15961601
if (pproptags == nullptr) {
@@ -1709,7 +1714,7 @@ ec_error_t nsp_interface_compare_mids(NSPI_HANDLE handle, uint32_t reserved,
17091714
if (pstat != nullptr && pstat->codepage == CP_WINUNICODE)
17101715
return ecNotSupported;
17111716
auto base = ab_tree::AB.get(handle.guid);
1712-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1717+
if (base == nullptr || !session_check(handle, *base))
17131718
return ecError;
17141719

17151720
if (NULL == pstat || 0 == pstat->container_id) {
@@ -1865,7 +1870,7 @@ ec_error_t nsp_interface_get_specialtable(NSPI_HANDLE handle, uint32_t flags,
18651870
if (!b_unicode && codepage == CP_WINUNICODE)
18661871
return ecNotSupported;
18671872
auto base = ab_tree::AB.get(handle.guid);
1868-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1873+
if (base == nullptr || !session_check(handle, *base))
18691874
return ecError;
18701875
(*pversion) ++;
18711876
auto rowset = common_util_proprowset_init();
@@ -1908,7 +1913,7 @@ ec_error_t nsp_interface_mod_linkatt(NSPI_HANDLE handle, uint32_t flags,
19081913
return ecNotSupported;
19091914
auto rpc_info = get_rpc_info();
19101915
auto base = ab_tree::AB.get(handle.guid);
1911-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
1916+
if (base == nullptr || !session_check(handle, *base))
19121917
return ecError;
19131918
ab_tree::ab_node tnode(base, mid);
19141919
if (!tnode.exists())
@@ -2119,7 +2124,7 @@ ec_error_t nsp_interface_resolve_namesw(NSPI_HANDLE handle, uint32_t reserved,
21192124
non-zero so we skip it.
21202125
*/
21212126
auto base = ab_tree::AB.get(handle.guid);
2122-
if (base == nullptr || (g_session_check && base->guid() != handle.guid))
2127+
if (base == nullptr || !session_check(handle, *base))
21232128
return ecError;
21242129
if (NULL == pproptags) {
21252130
auto nt = ndr_stack_anew<LPROPTAG_ARRAY>(NDR_STACK_IN);

0 commit comments

Comments
 (0)