From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13542 invoked by alias); 6 Jan 2015 10:04:57 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 34128 Received: (qmail 10529 invoked from network); 6 Jan 2015 10:04:55 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS autolearn=ham version=3.3.2 X-AuditID: cbfec7f5-b7fc86d0000066b7-99-54abb0ed73a1 Date: Tue, 06 Jan 2015 09:54:49 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: PATCH 13/17: anon funcs: don't leak shf when ctrl-c in () {:} =(sleep 1) Message-id: <20150106095449.081ed9a5@pwslap01u.europe.root.pri> In-reply-to: <1420521949-30483-14-git-send-email-mikachu@gmail.com> References: <1420521949-30483-1-git-send-email-mikachu@gmail.com> <1420521949-30483-14-git-send-email-mikachu@gmail.com> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKLMWRmVeSWpSXmKPExsVy+t/xa7pvN6wOMVg2Xd7iYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZRw8dYitYA5rRdufLqYGxg/MXYycHBICJhK/VnxjgrDFJC7c W8/WxcjFISSwlFFi88OXzBDOEiaJDY+fQTnbGCUe/13ACtLCIqAqMf/UAzYQm03AUGLqptmM ILaIgLjE2bXnWboYOTiEBcIlHj1kAQnzCthLNF+cDFbOKeAscaX9G9gVQgJVEpO/nGcHsfkF 9CWu/v0EdZG9xMwrZxghegUlfky+BzaHWUBLYvO2JlYIW15i85q3UHPUJW7c3c0+gVFoFpKW WUhaZiFpWcDIvIpRNLU0uaA4KT3XSK84Mbe4NC9dLzk/dxMjJGi/7mBceszqEKMAB6MSD69H 1+oQIdbEsuLK3EOMEhzMSiK8O6YDhXhTEiurUovy44tKc1KLDzEycXBKNTCaqVrzv922R/dk zuWj+nW3fBibr79IkWA67vwn6Y+D8bb4x3aH+oK+2DRmqr+bcvAb6yyW9zqHH1VWfp6aVHRt wvRP2YoL1RVFncpdF+9vs99o/r5DJm5LUFR8T+AvO4lKrm9S340bFi9z3iPz//jOzZVSH3V+ JT66wnV7f+DZaQy30rLbVzcpsRRnJBpqMRcVJwIAZnBtTjgCAAA= On Tue, 6 Jan 2015 06:25:45 +0100 Mikael Magnusson wrote: > Found by Coverity (Issue 439076). > --- > Src/exec.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/Src/exec.c b/Src/exec.c > index 6b93008..207e8c1 100644 > --- a/Src/exec.c > +++ b/Src/exec.c > @@ -4461,6 +4461,8 @@ execfuncdef(Estate state, Eprog redir_prog) > if (htok && args) { > execsubst(args); > if (errflag) { > + zsfree(shf->filename); > + zfree(shf, sizeof(*shf)); > state->pc = end; > return 1; > } Can't see how that can be wrong. Nothing else can take owernship of shf in the error case. pws