On 25-03-15 14:21, Gustavo Zacarias wrote:
On 03/25/2015 07:55 AM, ir. Tjeerd Pinkert wrote:
Thanks, indeed, buildroot 2015.02 has 6.3 with no patches, although it
downloads the latest tar file. I'm trying to see if patching helps.
I've sent a patch to bump it to patchlevel 8 after the 2015.02 release
for another bug in commit b817e8c58117402561a61c0d749337f415c9c985
(bash-related).
So it'll be part of the 2015.05 release, or if you're in a rush just
apply that patch to your tree.
I have tested it, and the patch works, no more segfaults so far.
I attach the patch file for buildroot, Gustavo, can you tell me if I did
it in a correct way? Did you already include this one in buildroot too?
I could not get the original patch working with the buildroot system so
I generated my own diff which works for buildroot (that is
readline-0001-63-002.patch). I saw there are more patches for readline
6.3 available.
Tjeerd
--- a/readline.c 2013-10-28 19:58:06.000000000 +0100
+++ b/readline.c 2015-03-25 13:45:43.900418511 +0100
@@ -744,7 +744,8 @@ _rl_dispatch_callback (cxt)
r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ));
RL_CHECK_SIGNALS ();
- if (r == 0) /* success! */
+ /* We only treat values < 0 specially to simulate recursion. */
+ if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
{
_rl_keyseq_chain_dispose ();
RL_UNSETSTATE (RL_STATE_MULTIKEY);
READLINE PATCH REPORT
=====================
Readline-Release: 6.3
Patch-ID: readline63-002
Bug-Reported-by: Anatol Pomozov <[email protected]>
Bug-Reference-ID:
<caomfomxy3mt2so5gq5f-smcvarquaebwz2qkzgctmexjode...@mail.gmail.com>
Bug-Reference-URL:
http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
Bug-Description:
When in callback mode, some readline commands can cause readline to seg
fault by passing invalid contexts to callback functions.
Patch (apply with `patch -p0'):
*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
--- readline.c 2014-03-10 14:15:02.000000000 -0400
***************
*** 745,749 ****
RL_CHECK_SIGNALS ();
! if (r == 0) /* success! */
{
_rl_keyseq_chain_dispose ();
--- 745,750 ----
RL_CHECK_SIGNALS ();
! /* We only treat values < 0 specially to simulate recursion. */
! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or
failure! */
{
_rl_keyseq_chain_dispose ();
*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
--- patchlevel 2014-03-21 08:28:40.000000000 -0400
***************
*** 1,3 ****
# Do not edit -- exists only for use by patch
! 1
--- 1,3 ----
# Do not edit -- exists only for use by patch
! 2
_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline