This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Bug-readline] [readline patch, gdb-7.3?] Avoid free from a signal handler [Re: [PATCH] Make interrupting tab-completion safe.]


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]