~sircmpwn/aerc2#270
Reply-all (rr) crashes on OpenBSD

Hi,

Using today's master branch, using rr gives the following stack trace:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x9dfbd9]

goroutine 1 [running]:
git.sr.ht/~sircmpwn/aerc/commands/msg.reply.Execute(0xc0000b4480, 0xc000321c00, 0x2, 0x2, 0x1, 0xc0000a2fc0)
    /home/edd/source/aerc/commands/msg/reply.go:97 +0xa49
git.sr.ht/~sircmpwn/aerc/commands.(*Commands).ExecuteCommand(0xc0000101a0, 0xc0000b4480, 0xc000321c00, 0x2, 0x2, 0x370cc0, 0xc0009d53c0)
    /home/edd/source/aerc/commands/commands.go:65 +0xfe
main.execCommand(0xc0000b4480, 0xc00009a550, 0xc000321c00, 0x2, 0x2, 0xc000321c00, 0xc000ce1320)
    /home/edd/source/aerc/aerc.go:58 +0xc5
main.main.func1(0xc000321c00, 0x2, 0x2, 0x2, 0x2)
    /home/edd/source/aerc/aerc.go:148 +0x57
git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).BeginExCommand.func1(0xc0009d73e0, 0x8)
    /home/edd/source/aerc/widgets/aerc.go:351 +0x95
git.sr.ht/~sircmpwn/aerc/widgets.(*ExLine).Event(0xc000d018c0, 0x36ffc0, 0xc000321b60, 0xc000321b60)
    /home/edd/source/aerc/widgets/exline.go:56 +0x15e
git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).Event(0xc0000b4480, 0x36ffc0, 0xc000321b60, 0x244101)
    /home/edd/source/aerc/widgets/aerc.go:170 +0x494
git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).simulate(0xc0000b4480, 0xc0000dac00, 0xa, 0x10)
    /home/edd/source/aerc/widgets/aerc.go:163 +0x9b
git.sr.ht/~sircmpwn/aerc/widgets.(*Aerc).Event(0xc0000b4480, 0x36ffc0, 0xc000321aa0, 0xc00015f500)
    /home/edd/source/aerc/widgets/aerc.go:186 +0x39c
git.sr.ht/~sircmpwn/aerc/lib/ui.(*UI).Tick(0xc00009a550, 0x2f5700)
    /home/edd/source/aerc/lib/ui/ui.go:84 +0xc9
main.main()
    /home/edd/source/aerc/aerc.go:176 +0x56d

Let me know if I can provide more info. I don't know the first thing about go.

Status
RESOLVED FIXED
Submitter
~vext01
Assigned to
No-one
Submitted
6 months ago
Updated
a month ago
Labels
No labels applied.

~pmolloy 5 months ago

Neither do I! It looks like errors returned by gomail.ParseAddress() on line 61 are not handled. In that case if the first value is nil it would explain the panic on line 97 when it is dereferenced.

If you're building from source you could change line 61 to something like the following:

fmt.Println(conf.From)
us, err := gomail.ParseAddress(conf.From)
if us == nil {
    fmt.Println(err)
    return err
}

~labrat REPORTED FIXED a month ago

That issue is hopefully fixed, if not please reopen

Register here or Log in to comment, or comment via email.