diff options
author | Koni Marti <koni.marti@gmail.com> | 2024-05-04 22:04:53 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2024-05-09 22:13:17 +0200 |
commit | 8307776f893b1ee000dc83d8b8226f58403a389a (patch) | |
tree | 4c99792f40e8a0b8e6995fa3c784336b9f77717f /worker | |
parent | 1d96da5126e6cdeda50c31351153241c8c828112 (diff) | |
download | aerc-8307776f893b1ee000dc83d8b8226f58403a389a.tar.gz |
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>
Diffstat (limited to 'worker')
-rw-r--r-- | worker/imap/connect.go | 5 |
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 = "/" |