Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Certain pattern causing shell to crash
- X-seq: zsh-workers 28588
- From: Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Re: Certain pattern causing shell to crash
- Date: Thu, 6 Jan 2011 19:54:27 +0000
- In-reply-to: <20110106185134.GA10630@xxxxxxxxxxxxxxx>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <20110106160802.GA4655@Xye> <20110106182201.27da4de9@xxxxxxxxxxxxxxxxxxxxxxxxx> <20110106185134.GA10630@xxxxxxxxxxxxxxx>
On Thu, 6 Jan 2011 13:51:35 -0500
Ricky Zhou <ricky@xxxxxxxxx> wrote:
> For what it's worth, I did a git bisect, and the segfault was introduced
> in d234059b1c6493e5eefb6c28aa2b8a021d894d51. Hopefully this can be of
> use to somebody more familiar with how this code works.
(Ah, so I need to use
git diff d234059b1c6493e5eefb6c28aa2b8a021d894d51^\!
to look at it. Obvious.)
Yes, that narrows it down a lot, thanks.
Index: Src/text.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/text.c,v
retrieving revision 1.26
diff -p -u -r1.26 text.c
--- Src/text.c 14 Sep 2010 14:46:26 -0000 1.26
+++ Src/text.c 6 Jan 2011 19:43:49 -0000
@@ -785,8 +785,7 @@ gettext2(Estate state)
taddstr(" ");
taddstr(ecgetstr(state, EC_NODUP, NULL));
if (ctype == COND_STREQ ||
- ctype == COND_STRNEQ ||
- ctype == COND_REGEX)
+ ctype == COND_STRNEQ)
state->pc++;
} else {
/* Unary test: `-f foo' etc. */
Index: Test/C02cond.ztst
===================================================================
RCS file: /cvsroot/zsh/zsh/Test/C02cond.ztst,v
retrieving revision 1.27
diff -p -u -r1.27 C02cond.ztst
--- Test/C02cond.ztst 10 Oct 2010 00:05:25 -0000 1.27
+++ Test/C02cond.ztst 6 Jan 2011 19:43:49 -0000
@@ -306,6 +306,21 @@ F:Failures in these cases do not indicat
2:Error message for unknown infix condition
?(eval):1: unknown condition: -fail
+ crashme() {
+ if [[ $1 =~ ^http:* ]]
+ then
+ url=${1#*=}
+ fi
+ }
+ which crashme
+0:Regression test for examining code with regular expression match
+>crashme () {
+> if [[ $1 =~ ^http:* ]]
+> then
+> url=${1#*=}
+> fi
+>}
+
%clean
# This works around a bug in rm -f in some versions of Cygwin
chmod 644 unmodish
--
Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
Web page now at http://homepage.ntlworld.com/p.w.stephenson/
Messages sorted by:
Reverse Date,
Date,
Thread,
Author