浏览代码

API: Fix data race in online ipList (#4513)

Fixes https://github.com/XTLS/Xray-core/issues/4512
风扇滑翔翼 7 月之前
父节点
当前提交
b70d0abebe
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      app/stats/online_map.go

+ 2 - 2
app/stats/online_map.go

@@ -40,11 +40,11 @@ func (c *OnlineMap) AddIP(ip string) {
 	if ip == "127.0.0.1" {
 		return
 	}
+	c.access.Lock()
 	if _, ok := list[ip]; !ok {
-		c.access.Lock()
 		list[ip] = time.Now()
-		c.access.Unlock()
 	}
+	c.access.Unlock()
 	if time.Since(c.lastCleanup) > c.cleanupPeriod {
 		list = c.RemoveExpiredIPs(list)
 		c.lastCleanup = time.Now()