about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/glob.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 28ddd557a..f5dd2ad9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,11 @@
 	* 33042: NEWS, Src/jobs.c: $? and $pipestatus report 128+signal
 	number for stopped jobs as well as terminated jobs
 
+2014-08-21  Mikael Magnusson  <mikachu@gmail.com>
+
+	* 33038: Src/glob.c: Fix {a..b} expansion hanging when either
+	endpoint is a literal NUL character
+
 2014-08-20  Barton E. Schaefer  <schaefer@zsh.org>
 
 	* Lokesh Mandvekar: 33032: Completion/Linux/Command/_docker,
diff --git a/Src/glob.c b/Src/glob.c
index 627166c7a..cb853870a 100644
--- a/Src/glob.c
+++ b/Src/glob.c
@@ -2219,7 +2219,7 @@ xpandbraces(LinkList list, LinkNode *np)
 	    uremnode(list, node);
 	    strp = str - str3;
 	    lenalloc = strp + strlen(str2+1) + 1;
-	    for (; cend >= cstart; cend--) {
+	    do {
 #ifdef MULTIBYTE_SUPPORT
 		char *ncptr;
 		int nclen;
@@ -2239,7 +2239,7 @@ xpandbraces(LinkList list, LinkNode *np)
 		insertlinknode(list, last, p);
 		if (rev)	/* decreasing:  add in reverse order. */
 		    last = nextnode(last);
-	    }
+	    } while (cend-- > cstart);
 	    *np = nextnode(olast);
 	    return;
 	}