From bcbf0454d3cdcc82fc3de6f1040686a0f7fca438 Mon Sep 17 00:00:00 2001 From: Matt Van Horn Date: Tue, 28 Apr 2026 07:02:46 -0700 Subject: [PATCH] fix(sender): check writes in iMIP body (#1182) --- sender/sender.go | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/sender/sender.go b/sender/sender.go index caba62d1e281b873a905b2ae25c65d1b1de5f125..225b2952ca08a05c99b961907f6f63f2bde4e235 100644 --- a/sender/sender.go +++ b/sender/sender.go @@ -800,8 +800,12 @@ func SendCalendarReply(account *config.Account, to []string, subject, plainBody return nil, err } qp := quotedprintable.NewWriter(plainPart) - fmt.Fprint(qp, plainBody) - qp.Close() + if _, err := fmt.Fprint(qp, plainBody); err != nil { + return nil, err + } + if err := qp.Close(); err != nil { + return nil, err + } // text/calendar inline part (Outlook/Mac Mail use this) calHeader := textproto.MIMEHeader{} @@ -811,10 +815,16 @@ func SendCalendarReply(account *config.Account, to []string, subject, plainBody if err != nil { return nil, err } - calPart.Write([]byte(clib.WrapBase64(base64.StdEncoding.EncodeToString(icsData)))) + if _, err := calPart.Write([]byte(clib.WrapBase64(base64.StdEncoding.EncodeToString(icsData)))); err != nil { + return nil, err + } - altWriter.Close() - altPart.Write(altMsg.Bytes()) + if err := altWriter.Close(); err != nil { + return nil, err + } + if _, err := altPart.Write(altMsg.Bytes()); err != nil { + return nil, err + } // .ics file attachment (Gmail uses this) attachHeader := textproto.MIMEHeader{} @@ -825,10 +835,16 @@ func SendCalendarReply(account *config.Account, to []string, subject, plainBody if err != nil { return nil, err } - attachPart.Write([]byte(clib.WrapBase64(base64.StdEncoding.EncodeToString(icsData)))) + if _, err := attachPart.Write([]byte(clib.WrapBase64(base64.StdEncoding.EncodeToString(icsData)))); err != nil { + return nil, err + } - outerWriter.Close() - msg.Write(outerMsg.Bytes()) + if err := outerWriter.Close(); err != nil { + return nil, err + } + if _, err := msg.Write(outerMsg.Bytes()); err != nil { + return nil, err + } // Send via SMTP addr := fmt.Sprintf("%s:%d", smtpServer, smtpPort)