Mutex protect query keys response (#2812)

This commit is contained in:
devonh 2022-10-20 15:54:18 +00:00 committed by GitHub
parent b58c9bb094
commit 9041491201
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -472,7 +472,9 @@ func (a *KeyInternalAPI) queryRemoteKeys(
close(resultCh) close(resultCh)
}() }()
for result := range resultCh { processResult := func(result *gomatrixserverlib.RespQueryKeys) {
respMu.Lock()
defer respMu.Unlock()
for userID, nest := range result.DeviceKeys { for userID, nest := range result.DeviceKeys {
res.DeviceKeys[userID] = make(map[string]json.RawMessage) res.DeviceKeys[userID] = make(map[string]json.RawMessage)
for deviceID, deviceKey := range nest { for deviceID, deviceKey := range nest {
@ -495,6 +497,10 @@ func (a *KeyInternalAPI) queryRemoteKeys(
// TODO: do we want to persist these somewhere now // TODO: do we want to persist these somewhere now
// that we have fetched them? // that we have fetched them?
} }
for result := range resultCh {
processResult(result)
}
} }
func (a *KeyInternalAPI) queryRemoteKeysOnServer( func (a *KeyInternalAPI) queryRemoteKeysOnServer(