Fork of the aerc email client (https://sr.ht/~rjarry/aerc)
d9a0522780
A panic could happen when multiple delete messages are sent one after another without waiting until there are no messages left to be deleted: panic: runtime error: makeslice: len out of range goroutine 1 [running]: git.sr.ht/~sircmpwn/aerc/lib.(*MessageStore).Update(0xc000592e00, 0xa8fe60, 0xc0003340f0) /go/src/git.sr.ht/~sircmpwn/aerc/lib/msgstore.go:222 +0x5b8 git.sr.ht/~sircmpwn/aerc/widgets.(*AccountView).onMessage(0xc0000a0460, 0xa8fe60, 0xc0003340f0) /go/src/git.sr.ht/~sircmpwn/aerc/widgets/account.go:251 +0x307 git.sr.ht/~sircmpwn/aerc/widgets.(*AccountView).Tick(0xc0000a0460, 0xc0001496b0) /go/src/git.sr.ht/~sircmpwn/aerc/widgets/account.go:90 +0xa1 git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).Tick(0xc0000a9f40, 0xc000020501) /go/src/git.sr.ht/~sircmpwn/aerc/widgets/aerc.go:123 +0x91 main.main() /go/src/git.sr.ht/~sircmpwn/aerc/aerc.go:182 +0x5bf The make that blows up is: uids := make([]uint32, len(store.uids)-len(msg.Uids)) This change simply checks whether the make is going to be valid before starting to work on the actual delete. If there are more messages queued to be deleted than what's left in the store, then we're obviously in an inconsistent state, ask for an update and break. |
||
---|---|---|
commands | ||
config | ||
doc | ||
filters | ||
lib | ||
models | ||
templates | ||
widgets | ||
worker | ||
.build.yml | ||
.gitignore | ||
aerc.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md |
aerc
aerc is an email client for your terminal.
Join the IRC channel: #aerc on irc.freenode.net for end-user support, and #aerc-dev for development.
Building
Install the dependencies:
- go (>=1.12)
- scdoc
Then compile aerc:
$ make
aerc optionally supports notmuch. To enable it, you need to have a recent version of notmuch, including the header files (notmuch.h). Then compile aerc with the necessary build tags:
$ GOFLAGS=-tags=notmuch make
Installation
# make install
$ aerc
On its first run, aerc will copy the default config files to ~/.config/aerc
and show the account configuration wizard.
If you redirect stdout to a file, logging output will be written to that file:
$ aerc > log
Resources
Send patches and questions to ~sircmpwn/aerc@lists.sr.ht.
Subscribe to release announcements on ~sircmpwn/aerc-announce
Bugs & todo here: ~sircmpwn/aerc2