mutt slang segfault on resume from suspend
Okay, this is probably the segfault I've been seeing for a while now and
the one which certainly is related to fg'ing a suspended mutt
process. It's the second time I've had mutt do this recently, with a
stack backtrace showing the same path, on two different machines (both
Gentoo x86, but mutt built manually from current CVS).
Can someone say if this is a slang-1 problem or a mutt problem?
Core was generated by `mutt'.
Program terminated with signal 11, Segmentation fault.
(gdb) bt
#0 0xb7b9329e in _int_free () from /lib/tls/libc.so.6
#1 0xb7b9214b in free () from /lib/tls/libc.so.6
#2 0xb7f85fb3 in SLfree () from /usr/lib/libslang-utf8.so.1
#3 0xb7f947d4 in SLcurses_delwin () from /usr/lib/libslang-utf8.so.1
#4 0x080b7c5c in mutt_resize_screen () at resize.c:77
#5 0x08065735 in mutt_index_menu () at curs_main.c:596
#6 0x08079a44 in main (argc=1, argv=0xbfffef14) at main.c:960
I'm not sure what the initial trigger is, but I think that both times
the process had been suspended for several minutes. The TTY has not
been resized.
System: Linux 2.6.11-gentoo-r6 (i686) [using slang 10409] [using libidn
0.5.15 (compiled with 0.5.15)]
Compile options:
-DOMAIN
+DEBUG
-HOMESPOOL +USE_SETGID +USE_DOTLOCK +DL_STANDALONE
+USE_FCNTL -USE_FLOCK -USE_INODESORT
-USE_POP +USE_IMAP +USE_GSS +USE_SSL -USE_GNUTLS +USE_SASL
+HAVE_GETADDRINFO
-HAVE_REGCOMP +USE_GNU_REGEX
+HAVE_COLOR -HAVE_START_COLOR -HAVE_TYPEAHEAD -HAVE_BKGDSET
-HAVE_CURS_SET -HAVE_META -HAVE_RESIZETERM
+CRYPT_BACKEND_CLASSIC_PGP +CRYPT_BACKEND_CLASSIC_SMIME
-CRYPT_BACKEND_GPGME
-BUFFY_SIZE -EXACT_ADDRESS -SUN_ATTACHMENT
-ENABLE_NLS -LOCALES_HACK +HAVE_WC_FUNCS +HAVE_LANGINFO_CODESET
+HAVE_LANGINFO_YESEXPR
+HAVE_ICONV -ICONV_NONTRANS +HAVE_LIBIDN +HAVE_GETSID +USE_HCACHE
-ISPELL
ldd includes: libslang-utf8.so.1 => /usr/lib/libslang-utf8.so.1 (0xb7e53000)
(locale includes LC_CTYPE=en_GB.UTF-8).
Continuing with gdb:
(gdb) frame 4
#4 0x080b7c5c in mutt_resize_screen () at resize.c:77
77 delwin (stdscr);
(gdb) list
72 SLtt_Screen_Cols = atoi (cp);
73 else
74 SLtt_Screen_Cols = 80;
75 }
76 #ifdef USE_SLANG_CURSES
77 delwin (stdscr);
78 SLsmg_reset_smg ();
79 SLsmg_init_smg ();
80 stdscr = newwin (0, 0, 0, 0);
81 keypad (stdscr, TRUE);
(gdb) print stdscr
No symbol "stdscr" in current context.
(gdb) print SLcurses_Stdscr
$1 = (SLcurses_Window_Type *) 0x80f5028
(gdb) print *SLcurses_Stdscr
$2 = {_begy = 0, _begx = 0, _maxy = 41, _maxx = 79, _curx = 79, _cury = 1,
nrows = 42, ncols = 80, scroll_min = 0, scroll_max = 42, lines = 0x80f5078,
color = 1, is_subwin = 0, attr = 256, delay_off = -1, scroll_ok = 0,
modified = 0, has_box = 0, use_keypad = 1}
I've no idea if that's valid or where to go from here.
--
I am keeping international relations on a peaceable footing.
You are biding your time before acting.
He is coddling tyrants.
-- Roger BW on topic of verb conjugation