<<< Date Index >>>     <<< Thread Index >>>

Re: Mutt crashing on exit or replying (sometimes)



On Fri, Mar 20, 2009 at 12:34:09PM +0100, Rocco Rutte wrote:
> Hi,
> 
> * Joshua Tinnin wrote:
> >On Wed, Mar 11, 2009 at 11:18:30AM -0500, Kyle Wheeler wrote:
> >> On Wednesday, March 11 at 10:36 AM, quoth Joshua Tinnin:
> 
> >> >Program received signal SIGSEGV, Segmentation fault.
> >> >0x080cb71f in safe_strdup ()
> >> >(gdb) backtrace
> >> >#0  0x080cb71f in safe_strdup ()
> >> >#1  0x080b4d6a in rfc822_cpy_adr_real ()
> >> >#2  0x080bc09c in mutt_default_from ()
> >> >#3  0x080bc9d0 in ci_send_message ()
> >> >#4  0x080a20d4 in mutt_pager ()
> >> >#5  0x0805d753 in mutt_display_message ()
> >> >#6  0x0806c3c3 in mutt_index_menu ()
> >> >#7  0x0808c6e5 in main ()
> >> >(gdb)
> 
> That shouldn't happen. If it happens next time, please print the values
> of p->personal and p->mailbox after going up to rfc822_cpy_adr_real. If
> you have exact address enabled (please include mutt -v | grep EXACT),
> please also print p->val.

I appreciate the response, but I honestly have no idea how to do what
you're asking. I know my way around my FreeBSD box, and I compile
everything, but I am not very experienced with debugging on this level.
If you included exact instructions, I can usually figure it out, but I
understand if it's too much hassle.

Thanks anyway,

- jt

> >Program received signal SIGSEGV, Segmentation fault.
> >0x28587029 in free () from /lib/libc.so.7
> >(gdb) backtrace
> >#0  0x28587029 in free () from /lib/libc.so.7
> >#1  0x080cb622 in safe_free ()
> >#2  0x080b3648 in rfc822_free_address ()
> >#3  0x08076965 in mutt_free_opt ()
> >#4  0x080769e2 in mutt_free_opts ()
> >#5  0x0808c704 in main ()
> >(gdb)
> 
> Can you please go up to rfc822_free_address() and print t->val (if exact
> address enabled), t->personal and t->mailbox. And then go up to
> mutt_free_opt() and print *p to see which address-related option is
> causing the trouble (maybe even in both cases).
> 
> I suspect that one of these is corrupt as safe_strdup() and safe_free()
> both handle NULL pointers just fine. If that's true, we need to only
> find out why.
> 
> Rocco