bug-readline
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-readline] [readline patch, gdb-7.3?] Avoid free from a signal h


From: Pedro Alves
Subject: Re: [Bug-readline] [readline patch, gdb-7.3?] Avoid free from a signal handler [Re: [PATCH] Make interrupting tab-completion safe.]
Date: Wed, 19 Oct 2011 18:01:50 +0100
User-agent: KMail/1.13.6 (Linux/2.6.38-11-generic; KDE/4.7.1; x86_64; ; )

On Wednesday 19 October 2011 17:32:57, Jan Kratochvil wrote:
> On Thu, 07 Jul 2011 14:10:08 +0200, Chet Ramey wrote:
> > The impression I got from your earlier message is that is is very easy
> > to reproduce using a GDB .exp file:
> > 
> > "Used this GDB .exp file, reproducible in several seconds"
> > 
> > All I am asking you do to is to check whether you can reproduce it using
> > the same .exp file after removing references to _rl_interrupt_immediately
> > in complete.c.
> 
> After removing the workaround:
>       https://lists.gnu.org/archive/html/bug-readline/2011-06/msg00003.html
> 
> and removing the changes of _rl_interrupt_immediately in complete.c the
> memory corruption is still reproducible:
> *** glibc detected *** .../gdb/testsuite/../../gdb/gdb: munmap_chunk(): 
> invalid pointer: 0x000000000718ef70 ***

This is gdb's readline copy, but:

 static RETSIGTYPE
 rl_signal_handler (sig)
      int sig;
 {
   if (_rl_interrupt_immediately || RL_ISSTATE(RL_STATE_CALLBACK))
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     {
       _rl_interrupt_immediately = 0;
       _rl_handle_signal (sig);
     }
   else
     _rl_caught_signal = sig;
 
   SIGHANDLER_RETURN;
 }

and GDB uses readline's callback interface.

-- 
Pedro Alves



reply via email to

[Prev in Thread] Current Thread [Next in Thread]