Fix thread safety after
@@ -3651,9 +3651,18 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
if (p->Eap_MatchUserByCert)
{
- HUB* hub = GetHub(p->Cedar, p->Eap_Identity.HubName);
+ HUB *hub;
bool found = false;
+
+ LockHubList(p->Cedar);
+ {
+ hub = GetHub(p->Cedar, p->Eap_Identity.HubName);
+ }
+ UnlockHubList(p->Cedar);
+
if (hub != NULL)
+ {
+ AcLock(hub);
{
USER* user = AcGetUserByCert(hub, p->Eap_TlsCtx.ClientCert.X);
if (user != NULL)
@@ -3662,6 +3671,8 @@ bool PPPProcessEAPTlsResponse(PPP_SESSION *p, PPP_EAP *eap_packet, UINT eapSize)
found = true;
ReleaseUser(user);
}
+ }
+ AcUnlock(hub);
ReleaseHub(hub);
}
