[Top][All Lists]
[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