aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoni Marti <koni.marti@gmail.com>2024-05-04 22:04:53 +0200
committerRobin Jarry <robin@jarry.cc>2024-05-09 22:13:17 +0200
commit8307776f893b1ee000dc83d8b8226f58403a389a (patch)
tree4c99792f40e8a0b8e6995fa3c784336b9f77717f
parent1d96da5126e6cdeda50c31351153241c8c828112 (diff)
downloadaerc-8307776f893b1ee000dc83d8b8226f58403a389a.tar.gz
aerc-8307776f893b1ee000dc83d8b8226f58403a389a.zip
imap: fix panic in connect
Fix a nil pointer dereference panic in connect when trying to obtain the folder delimiter. There is a List call to the imap server that in some instances can return a nil *imap.MailboxInfo that is not checked before it is dereferenced. Link: https://lists.sr.ht/~rjarry/aerc-devel/%3CEDE672E5-3F6F-402D-B1A4-5477183FC13C@ukr.net%3E Reported-by: Misha <ulianich_mihail@ukr.net> Signed-off-by: Koni Marti <koni.marti@gmail.com> Reviewed-by: Tim Culverhouse <tim@tim.culverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
-rw-r--r--worker/imap/connect.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/worker/imap/connect.go b/worker/imap/connect.go
index 01ba7801..c109d3b7 100644
--- a/worker/imap/connect.go
+++ b/worker/imap/connect.go
@@ -101,8 +101,9 @@ func (w *IMAPWorker) connect() (*client.Client, error) {
if err := c.List("", "", info); err != nil {
return nil, fmt.Errorf("failed to retrieve delimiter: %w", err)
}
- mailboxinfo := <-info
- w.delimiter = mailboxinfo.Delimiter
+ if mailboxinfo := <-info; mailboxinfo != nil {
+ w.delimiter = mailboxinfo.Delimiter
+ }
if w.delimiter == "" {
// just in case some implementation does not follow standards
w.delimiter = "/"