From c6561d32a8430f99bb84224ba8fde3ddcd44257e Mon Sep 17 00:00:00 2001 From: Koni Marti Date: Wed, 5 Oct 2022 22:50:40 +0200 Subject: forward,recall: fix charsets in part attachment Fix charset to UTF-8 in part attachments. The forward and recall commands fetch message parts with the go-message package which decodes to UTF-8. Hence, we should set the charset of the part attachment to utf-8 and not just copying over the one from the original message. Reported-by: Bence Ferdinandy Signed-off-by: Koni Marti Acked-by: Robin Jarry --- commands/msg/forward.go | 5 +++-- commands/msg/recall.go | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'commands') diff --git a/commands/msg/forward.go b/commands/msg/forward.go index a3459292..6f59a1bb 100644 --- a/commands/msg/forward.go +++ b/commands/msg/forward.go @@ -198,12 +198,13 @@ func (forward) Execute(aerc *widgets.Aerc, args []string) error { } store.FetchBodyPart(msg.Uid, p, func(reader io.Reader) { mime := fmt.Sprintf("%s/%s", bs.MIMEType, bs.MIMESubType) - name, ok := bs.Params["name"] + params := lib.SetUtf8Charset(bs.Params) + name, ok := params["name"] if !ok { name = fmt.Sprintf("%s_%s_%d", bs.MIMEType, bs.MIMESubType, rand.Uint64()) } mu.Lock() - composer.AddPartAttachment(name, mime, bs.Params, reader) + composer.AddPartAttachment(name, mime, params, reader) mu.Unlock() }) } diff --git a/commands/msg/recall.go b/commands/msg/recall.go index 4ef505ef..52d4ee89 100644 --- a/commands/msg/recall.go +++ b/commands/msg/recall.go @@ -204,12 +204,13 @@ func (Recall) Execute(aerc *widgets.Aerc, args []string) error { } msg.FetchBodyPart(p, func(reader io.Reader) { mime := fmt.Sprintf("%s/%s", bs.MIMEType, bs.MIMESubType) - name, ok := bs.Params["name"] + params := lib.SetUtf8Charset(bs.Params) + name, ok := params["name"] if !ok { name = fmt.Sprintf("%s_%s_%d", bs.MIMEType, bs.MIMESubType, rand.Uint64()) } mu.Lock() - composer.AddPartAttachment(name, mime, bs.Params, reader) + composer.AddPartAttachment(name, mime, params, reader) mu.Unlock() }) } -- cgit