From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19156 invoked from network); 27 Jul 1999 15:26:35 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 27 Jul 1999 15:26:35 -0000 Received: (qmail 27643 invoked by alias); 27 Jul 1999 15:26:24 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7298 Received: (qmail 27629 invoked from network); 27 Jul 1999 15:26:10 -0000 Message-Id: <9907271455.AA37457@ibmth.df.unipi.it> To: zsh-workers@sunsite.auc.dk Subject: PATCH: 3.1.6-test-3: core dump on parameter completion In-Reply-To: "Peter Stephenson"'s message of "Sat, 24 Jul 1999 15:12:38 DFT." <9907241312.AA33228@ibmth.df.unipi.it> Date: Tue, 27 Jul 1999 16:55:06 +0200 From: Peter Stephenson Peter Stephenson wrote: > Naoki Wakamatsu wrote: > > 3.1.6-test-2 generates core file on parameter completion, > > > > % zsh -f > > % autoload -U compinit > > % compinit > > % compconf completer=_approximate > > % echo $ZSH_v[TAB]zsh: 15442 segmentation fault (core dumped) zsh -f > > I get this too, on a different system (HPUX 10.20) Got it! There's a missing dupstring(); the cline struct is an invalid pointer (it's the positional parameter list from the function redefining compadd, which will be freed before the line is inserted), even though the returned completion r is correctly duplicated. The only thing I can't answer is whether r is really supposed to be different from w at this point, but let's assume so until proved otherwise. --- Src/Zle/zle_tricky.c.dups Sun Jul 25 14:47:27 1999 +++ Src/Zle/zle_tricky.c Tue Jul 27 16:43:30 1999 @@ -2617,6 +2617,7 @@ chuck(r); /* We still break it into parts here, trying to build a sensible * cline list for these matches, too. */ + w = dupstring(w); wl = strlen(w); *clp = bld_parts(w, wl, wl, NULL); *exact = 0; -- Peter Stephenson Tel: +39 050 844536 WWW: http://www.ifh.de/~pws/ Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy