fix: 处理撤回消息解密时的500错误
撤回消息会清空content但保留key_version,新增判断跳过此类消息解密,避免整个查询窗口被毒化
This commit is contained in:
@@ -196,7 +196,9 @@ func encryptMessageContent(msg *types.Message) (*types.Message, error) {
|
||||
}
|
||||
|
||||
func decryptMessageContent(msg *types.Message) error {
|
||||
if msg == nil || msg.KeyVersion <= 0 {
|
||||
// 撤回消息的内容已被清空(recall 会把 head/content 置 NULL,但 content_nonce/key_version 残留),
|
||||
// 此类行没有密文可解,直接放行让上层按已撤回形态下发,否则整个 get data 窗口会被单条撤回消息毒化成 500。
|
||||
if msg == nil || msg.KeyVersion <= 0 || msg.Content == nil {
|
||||
return nil
|
||||
}
|
||||
entry, err := getMessageKey(msg.TenantID, msg.KeyVersion)
|
||||
|
||||
Reference in New Issue
Block a user