mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-11 05:06:51 +00:00
Launcher, app/base, sentry, update service
This commit is contained in:
@ -38,6 +38,15 @@ import (
|
||||
|
||||
// Parse parses RAW message.
|
||||
func Parse(r io.Reader) (m *pmapi.Message, mimeBody, plainBody string, attReaders []io.Reader, err error) {
|
||||
defer func() {
|
||||
r := recover()
|
||||
if r == nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = fmt.Errorf("panic while parsing message: %v", r)
|
||||
}()
|
||||
|
||||
p, err := parser.New(r)
|
||||
if err != nil {
|
||||
return nil, "", "", nil, errors.Wrap(err, "failed to create new parser")
|
||||
|
||||
@ -545,6 +545,20 @@ func TestParseEncodedContentTypeBad(t *testing.T) {
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
type panicReader struct{}
|
||||
|
||||
func (panicReader) Read(p []byte) (int, error) {
|
||||
panic("lol")
|
||||
}
|
||||
|
||||
func TestParsePanic(t *testing.T) {
|
||||
var err error
|
||||
require.NotPanics(t, func() {
|
||||
_, _, _, _, err = Parse(&panicReader{})
|
||||
})
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func getFileReader(filename string) io.Reader {
|
||||
f, err := os.Open(filepath.Join("testdata", filename))
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user