Skip to content

Commit f899945

Browse files
authored
Merge pull request #3035 from lifenjoiner/race
Fix potential slice corruption for ODoH
2 parents 324786d + 554c1bd commit f899945

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

dnscrypt-proxy/serversInfo.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,8 @@ func route(proxy *Proxy, name string, serverProto stamps.StampProtoType) (*Relay
661661
return nil, err
662662
}
663663
var relayURLforTarget *url.URL
664-
for _, server := range proxy.registeredServers {
664+
proxy.serversInfo.RLock()
665+
for _, server := range proxy.serversInfo.registeredServers {
665666
if server.name != name || server.stamp.Proto != stamps.StampProtoTypeODoHTarget {
666667
continue
667668
}
@@ -673,6 +674,7 @@ func route(proxy *Proxy, name string, serverProto stamps.StampProtoType) (*Relay
673674
relayURLforTarget = &tmp
674675
break
675676
}
677+
proxy.serversInfo.RUnlock()
676678
if relayURLforTarget == nil {
677679
return nil, fmt.Errorf("Relay [%v] not found", relayName)
678680
}

0 commit comments

Comments
 (0)