From 6687d226432ec32fd3c7e53a5c4c6579af916e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Thu, 24 Feb 2022 21:58:48 +0800 Subject: [PATCH] fix: uploadLocalImage SIGSEGV (#1392) * fix: uploadLocalImage SIGSEGV * fix: removeLocalElement nil ptr --- coolq/bot.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/coolq/bot.go b/coolq/bot.go index 529b5fd..f3beca2 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -146,7 +146,7 @@ func (w *worker) wait() { } // uploadLocalImage 上传本地图片 -func (bot *CQBot) uploadLocalImage(target message.Source, img *LocalImageElement) (i message.IMessageElement, err error) { +func (bot *CQBot) uploadLocalImage(target message.Source, img *LocalImageElement) (message.IMessageElement, error) { if img.File != "" { f, err := os.Open(img.File) if err != nil { @@ -158,7 +158,10 @@ func (bot *CQBot) uploadLocalImage(target message.Source, img *LocalImageElement if lawful, mime := base.IsLawfulImage(img.Stream); !lawful { return nil, errors.New("image type error: " + mime) } - i, err = bot.Client.UploadImage(target, img.Stream, 4) + i, err := bot.Client.UploadImage(target, img.Stream, 4) + if err != nil { + return nil, err + } switch i := i.(type) { case *message.GroupImageElement: i.Flash = img.Flash @@ -166,7 +169,7 @@ func (bot *CQBot) uploadLocalImage(target message.Source, img *LocalImageElement case *message.FriendImageElement: i.Flash = img.Flash } - return + return i, err } // uploadLocalVideo 上传本地短视频至群聊 @@ -185,6 +188,7 @@ func removeLocalElement(elements []message.IMessageElement) []message.IMessageEl switch e.(type) { case *LocalImageElement, *LocalVideoElement: case *message.VoiceElement: // 未上传的语音消息, 也删除 + case nil: default: if j < i { elements[j] = e