fix: 修复 Hub 广播 data race 和端口扫描潜在死锁,清理死代码

- hub.go: broadcast 路径 RLock 改 Lock,修复并发 delete/close 竞争
- port_scan.go: pool.Invoke 失败时释放 wg 和 semaphore,防止死锁
- web_scanner.go: 删除只写不读的 fingerprintCache
- webtitle.go: 移除对已删除 SetFingerprints 的调用
- keylogger.go: 删除未使用的 stopChan 和 isRunning 字段
This commit is contained in:
ZacharyZcR
2026-04-27 19:04:26 +08:00
parent b35dbe4972
commit 1fe8bb5182
5 changed files with 6 additions and 39 deletions
+2 -2
View File
@@ -97,7 +97,7 @@ func (h *Hub) Run() {
h.mu.Unlock()
case message := <-h.broadcast:
h.mu.RLock()
h.mu.Lock()
for client := range h.clients {
select {
case client.send <- message:
@@ -106,7 +106,7 @@ func (h *Hub) Run() {
delete(h.clients, client)
}
}
h.mu.RUnlock()
h.mu.Unlock()
}
}
}