Message ID | 5512BF40.5000702@vu.nl |
---|---|
State | Rejected |
Headers | show |
On 03/25/2015 10:59 AM, ir. Tjeerd Pinkert wrote: > 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. Hi. No need to CC Mike or the readline list, as far as they're concerned this was already fixed with the patches upstream. Well, it's easy, fetch the patch: $ wget "http://git.buildroot.net/buildroot/patch/?id=b817e8c58117402561a61c0d749337f415c9c985" -O readline.patch Apply the patch: buildroot-2015.02 $ patch -p1 <readline.patch And yes, the patches need a little tweak to apply cleanly (the patch prefixing is done in a somewhat odd way), but i've handled that in the patch i've sent for buildroot inclusion. Regards.
--- 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);