/*
SGBlog -- Git-backed CGI/UCSPI blogging/phlogging/gemlogging engine
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2020-2023 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
"bytes"
"encoding/base64"
"errors"
+ "fmt"
"io"
- "io/ioutil"
"mime"
"mime/multipart"
"mime/quotedprintable"
return
}
ct, params, err := mime.ParseMediaType(ct)
+ if err != nil {
+ err = fmt.Errorf("can not ParseMediaType: %w", err)
+ return
+ }
if ct != "multipart/signed" {
err = errors.New("only text/plain and multipart/signed+text/plain Content-Type supported")
return
err = errors.New("no boundary string")
return
}
- data, err := ioutil.ReadAll(msg.Body)
+ data, err := io.ReadAll(msg.Body)
if err != nil {
return
}
return
}
if strings.HasPrefix(ct, "multipart/mixed") {
- ct, params, err = mime.ParseMediaType(ct)
+ _, params, err = mime.ParseMediaType(ct)
+ if err != nil {
+ err = fmt.Errorf("can not ParseMediaType: %w", err)
+ return
+ }
boundary = params["boundary"]
if len(boundary) == 0 {
err = errors.New("no boundary string")