diff --git a/Changelog.md b/Changelog.md
index 54f469a8..293eaf3a 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -36,7 +36,6 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/)
* golang.org/x/text v0.3.2 -> v0.3.3
* Set first-start to false in bridge, not in frontend.
* GODT-400 Refactor sendingInfo.
-
* GODT-380 Adding IE GUI to Bridge repo and building
* BR: extend functionality of PopupDialog
* BR: makefile APP_VERSION instead of BRIDGE_VERSION
@@ -49,6 +48,7 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/)
* IE: Added event watch in GUI
* IE: Removed `onLoginFinished`
* Structure for transfer rules in QML
+* GODT-213 Convert panics from message parser to error.
### Fixed
* GODT-655 Fix date picker with automatic Windows DST
diff --git a/internal/bridge/credits.go b/internal/bridge/credits.go
index 73fae98a..9df2931e 100644
--- a/internal/bridge/credits.go
+++ b/internal/bridge/credits.go
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see .
-// Code generated by ./credits.sh at Fri Aug 21 10:29:43 CEST 2020. DO NOT EDIT.
+// Code generated by ./credits.sh at Mon Aug 31 15:08:14 CEST 2020. DO NOT EDIT.
package bridge
diff --git a/internal/bridge/release_notes.go b/internal/bridge/release_notes.go
index 3b882141..5b7673fd 100644
--- a/internal/bridge/release_notes.go
+++ b/internal/bridge/release_notes.go
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see .
-// Code generated by ./release-notes.sh at 'Thu Aug 20 14:25:06 CEST 2020'. DO NOT EDIT.
+// Code generated by ./release-notes.sh at 'Mon Aug 31 15:08:14 CEST 2020'. DO NOT EDIT.
package bridge
diff --git a/internal/frontend/cli-ie/importexport.go b/internal/frontend/cli-ie/importexport.go
index fe89d7df..ed63df34 100644
--- a/internal/frontend/cli-ie/importexport.go
+++ b/internal/frontend/cli-ie/importexport.go
@@ -185,7 +185,9 @@ func (f *frontendCLI) setTransferRules(t *transfer.Transfer) bool {
func (f *frontendCLI) printTransferProgress(progress *transfer.Progress) {
failed, imported, exported, added, total := progress.GetCounts()
- f.Println(fmt.Sprintf("Progress update: %d (%d / %d) / %d, failed: %d", imported, exported, added, total, failed))
+ if total != 0 {
+ f.Println(fmt.Sprintf("Progress update: %d (%d / %d) / %d, failed: %d", imported, exported, added, total, failed))
+ }
if progress.IsPaused() {
f.Printf("Transfer is paused bacause %s", progress.PauseReason())
diff --git a/internal/importexport/credits.go b/internal/importexport/credits.go
index 60465343..6907b3cb 100644
--- a/internal/importexport/credits.go
+++ b/internal/importexport/credits.go
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see .
-// Code generated by ./credits.sh at Fri Aug 21 10:29:44 CEST 2020. DO NOT EDIT.
+// Code generated by ./credits.sh at Mon Aug 31 15:08:14 CEST 2020. DO NOT EDIT.
package importexport
diff --git a/internal/importexport/release_notes.go b/internal/importexport/release_notes.go
index 52583fb6..14c883f2 100644
--- a/internal/importexport/release_notes.go
+++ b/internal/importexport/release_notes.go
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU General Public License
// along with ProtonMail Bridge. If not, see .
-// Code generated by ./release-notes.sh at 'Fri Aug 21 14:17:14 CEST 2020'. DO NOT EDIT.
+// Code generated by ./release-notes.sh at 'Mon Aug 31 15:08:14 CEST 2020'. DO NOT EDIT.
package importexport
diff --git a/internal/transfer/provider_pmapi_target.go b/internal/transfer/provider_pmapi_target.go
index 40c7e92f..2220bcfc 100644
--- a/internal/transfer/provider_pmapi_target.go
+++ b/internal/transfer/provider_pmapi_target.go
@@ -206,7 +206,14 @@ func (p *PMAPIProvider) generateImportMsgReq(msg Message, globalMailbox *Mailbox
}, nil
}
-func (p *PMAPIProvider) parseMessage(msg Message) (*pmapi.Message, []io.Reader, error) {
+func (p *PMAPIProvider) parseMessage(msg Message) (m *pmapi.Message, r []io.Reader, err error) {
+ // Old message parser is panicking in some cases.
+ // Instead of crashing we try to convert to regular error.
+ defer func() {
+ if r := recover(); r != nil {
+ err = fmt.Errorf("%v", r)
+ }
+ }()
message, _, _, attachmentReaders, err := pkgMessage.Parse(bytes.NewBuffer(msg.Body), "", "")
return message, attachmentReaders, err
}