Fetch or create a dispinfo struct.
********************************************************************/
-static DISP_INFO *get_samr_dispinfo_by_sid(DOM_SID *psid)
+static DISP_INFO *get_samr_dispinfo_by_sid(const struct dom_sid *psid)
{
/*
* We do a static cache for DISP_INFO's here. Explanation can be found
We must also remove the timeout handler.
********************************************************************/
-static void force_flush_samr_cache(DISP_INFO *disp_info)
+static void force_flush_samr_cache(const struct dom_sid *sid)
{
+ struct disp_info *disp_info = get_samr_dispinfo_by_sid(sid);
+
if ((disp_info == NULL) || (disp_info->cache_timeout_event == NULL)) {
return;
}
}
/* After a "set" ensure we have no cached display info. */
- force_flush_samr_cache(info->disp_info);
+ force_flush_samr_cache(&sid);
*r->out.access_granted = acc_granted;
/* ================ END SeMachineAccountPrivilege BLOCK ================ */
if (NT_STATUS_IS_OK(status)) {
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&sid);
}
return status;
/******** END SeAddUsers BLOCK *********/
if (NT_STATUS_IS_OK(status)) {
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&alias_sid);
}
return status;
/******** END SeAddUsers BLOCK *********/
if (NT_STATUS_IS_OK(status)) {
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&alias_sid);
}
return status;
/******** END SeAddUsers BLOCK *********/
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&group_sid);
return status;
}
/******** END SeAddUsers BLOCK *********/
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&group_sid);
return status;
}
ZERO_STRUCTP(r->out.user_handle);
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&user_sid);
return NT_STATUS_OK;
}
if (!close_policy_hnd(p, r->in.group_handle))
return NT_STATUS_OBJECT_NAME_INVALID;
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&group_sid);
return NT_STATUS_OK;
}
if (!close_policy_hnd(p, r->in.alias_handle))
return NT_STATUS_OBJECT_NAME_INVALID;
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&alias_sid);
return NT_STATUS_OK;
}
if (!create_policy_hnd(p, r->out.group_handle, info))
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&info_sid);
return NT_STATUS_OK;
}
if (!create_policy_hnd(p, r->out.alias_handle, info))
return NT_STATUS_OBJECT_NAME_NOT_FOUND;
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&info_sid);
return NT_STATUS_OK;
}
/******** End SeAddUsers BLOCK *********/
if (NT_STATUS_IS_OK(status)) {
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&group_sid);
}
return status;
/******** End SeAddUsers BLOCK *********/
if (NT_STATUS_IS_OK(status))
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&group_sid);
return status;
}
return NT_STATUS_OK;
}
- force_flush_samr_cache(disp_info);
+ force_flush_samr_cache(&domain_sid);
result = NT_STATUS_OK;