Bug#719523: fldigi: segfault on start-up (active_modem == NULL)
Package: fldigi
Version: 3.21.72-1
Severity: important
Tags: upstream
After updating fldigi to 3.21.72 (or maybe this first appeared in .71) with
my $HOME/.fldigi/ dir from the previous version still present, fldigi
segfaults at start-up. The "Fldigi configuration wizard" dialog pops up,
then the following crash occurs when the waterfall init code tries to
dereference global 'active_modem' before it's been set.
The segfault doesn't happen when starting with no $HOME/.flgidi/ dir; It's
likely that it only occurs with (some particular?) rig controls configured.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe773e700 (LWP 21724)]
0x000000000064a9a3 in modem::set_reverse (this=0x0, on=false)
at trx/modem.cxx:264
264 reverse = on ^ (!wf->USB());
(gdb) bt
#0 0x000000000064a9a3 in modem::set_reverse (this=0x0, on=false)
at trx/modem.cxx:264
#1 0x000000000065c8ae in waterfall::USB (this=0xb607b0, b=false)
at waterfall/waterfall.cxx:1548
#2 0x00000000005d5589 in rigCAT_loop (args=0x0) at rigcontrol/rigio.cxx:1283
#3 0x00007ffff7995f8e in start_thread (arg=0x7fffe773e700)
at pthread_create.c:311
#4 0x00007ffff55c1e1d in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
(gdb) up
#1 0x000000000065c8ae in waterfall::USB (this=0xb607b0, b=false)
at waterfall/waterfall.cxx:1548
1548 active_modem->set_reverse(reverse);
(gdb) l
1543
1544 void waterfall::USB(bool b) {
1545 if (wfdisp->USB() == b)
1546 return;
1547 wfdisp->USB(b);
1548 active_modem->set_reverse(reverse);
1549 REQ(&viewer_redraw);
1550 }
1551
1552 bool waterfall::USB() {
(gdb) p active_modem
$1 = (modem *) 0x0
Reply to: