From 5f0d368995c74dbe6048bb41b5db8f5724ad31a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E6=99=BA=E8=B6=850668000959?= Date: Sat, 6 Jun 2026 21:16:55 +0800 Subject: [PATCH] fix: add ok checks for sync.Map LoadAndDelete/Load type assertions --- pkg/channels/feishu/feishu_64.go | 4 ++-- pkg/channels/slack/slack.go | 5 ++++- pkg/isolation/platform_windows.go | 5 ++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/channels/feishu/feishu_64.go b/pkg/channels/feishu/feishu_64.go index 40e085c4d..ef853079f 100644 --- a/pkg/channels/feishu/feishu_64.go +++ b/pkg/channels/feishu/feishu_64.go @@ -746,8 +746,8 @@ func (c *FeishuChannel) isBotMentioned(message *larkim.EventMessage) bool { return false } - knownID, _ := c.botOpenID.Load().(string) - if knownID == "" { + knownID, ok := c.botOpenID.Load().(string) + if !ok || knownID == "" { logger.DebugCF("feishu", "Bot open_id unknown, cannot detect @mention", nil) return false } diff --git a/pkg/channels/slack/slack.go b/pkg/channels/slack/slack.go index b021feda9..c8655b3d4 100644 --- a/pkg/channels/slack/slack.go +++ b/pkg/channels/slack/slack.go @@ -154,7 +154,10 @@ func (c *SlackChannel) Send(ctx context.Context, msg bus.OutboundMessage) ([]str } if ref, ok := c.pendingAcks.LoadAndDelete(deliveryChatID); ok { - msgRef := ref.(slackMessageRef) + msgRef, ok := ref.(slackMessageRef) + if !ok { + return []string{ts}, nil + } c.api.AddReaction("white_check_mark", slack.ItemRef{ Channel: msgRef.ChannelID, Timestamp: msgRef.Timestamp, diff --git a/pkg/isolation/platform_windows.go b/pkg/isolation/platform_windows.go index 1b3be8bd3..3a6ebec26 100644 --- a/pkg/isolation/platform_windows.go +++ b/pkg/isolation/platform_windows.go @@ -62,7 +62,10 @@ func postStartPlatformIsolation(cmd *exec.Cmd, isolation config.IsolationConfig, if !isolation.Enabled || cmd == nil || cmd.Process == nil { return nil } - resourcesAny, _ := windowsPendingResources.LoadAndDelete(cmd) + resourcesAny, loaded := windowsPendingResources.LoadAndDelete(cmd) + if !loaded { + return nil + } resources, _ := resourcesAny.(windowsProcessResources) // Job objects can only be attached after the process exists, so the Windows // backend finishes isolation in this post-start hook.