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

Re: Certain pattern causing shell to crash



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