Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: [BUG] sigsegv



It says "incomplete sequence \339"  although egrep $'\330' ~/.zhistory
doesn't return anything…

(gdb) frame
#1  0x00007ffff7e1f628 in histwgetfn (pm=0x508f70) at parameter.c:1241
1241                addlinknode(l, dupstring(h));
(gdb) l
1236            for (iw = he->nwords - 1; iw >= 0; iw--) {
1237                h = he->node.nam + he->words[iw * 2];
1238                e = he->node.nam + he->words[iw * 2 + 1];
1239                sav = *e;
1240                *e = '\0';
1241                addlinknode(l, dupstring(h));
1242                *e = sav;
1243            }
1244            he = up_histent(he);
1245        }

(gdb) p he->node.nam + he->words[iw*2]
$31 = 0x7ffff7ae1370 <incomplete sequence \330>
(gdb) p he->node.nam + he->words[iw*2+1]
$32 = 0x7ffff7ae1371 ""
(gdb) p he->node.nam + he->words[(iw-1)*2]
$33 = 0x7ffff7ae134f ""
(gdb) p he->node.nam + he->words[(iw-1)*2+1]
$34 = 0x7ffff7ae1370 <incomplete sequence \330>

I agree that the resilience to incomplete chars should be strengthened.

Is iw the event number?
(gdb) p iw
$35 = 51475

Because history 51474 doesn't return any \330 char either:
51474  angel open
51475  angel open
51476  angel open

On Fri, 28 Apr 2023 at 14:22, Peter Stephenson
<p.w.stephenson@xxxxxxxxxxxx> wrote:
>
> > On 28/04/2023 15:13 Sebastian Gniazdowski <sgniazdowski@xxxxxxxxx> wrote:
> > I'm searching for an empty word, i.e.: I'm just pressing alt-/ right
> > after the shell has started.
>
> The crash is when the shell is putting together what's already in your
> history into a set of words, so it can use them from completing.  If
> you look at the string that is being pared in "bufferwords" at the
> point of the crash, which comes from the history entry "he", you should
> see a line from your previous command line history.  That's probably
> causing the shell some problems --- although there's always the
> possibility it might be a previous history entry that's messed things
> up, but this is the place to look first.
>
> What you're searching for / completing probably isn't all that important.
>
> Hmm, come to think of it a bit of safety combined with a DPUTS() might
> help with both aspects --- I'll see if I've got time for that over
> the weekend.
>
> pws
>


-- 
Best regards,
Sebastian Gniazdowski




Messages sorted by: Reverse Date, Date, Thread, Author