shithub: riscv

Download patch

ref: 59ba35a327d9b5a2f08bc877cb18bf6c6f942b8c
parent: 5aabf85d7cc3d0bd457b9b67696737411681cc8d
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Feb 18 19:32:47 EST 2017

libregexp: fix assert check for compile1 instruction count

the assert fails for regcompnl(".") as TANY is compiled to
one instruction instead of two when nl == 0.

its not a problem when we end up with less instructions, so
changing the assert condition from == to <= to make sure we
didnt overrun the buffer.

--
cinap

--- a/sys/src/libregexp/regcomp.c
+++ b/sys/src/libregexp/regcomp.c
@@ -299,7 +299,7 @@
 	sub = 0;
 	reinst = (Reinst*)(reprog+1);
 	end = compile1(parsetr, reinst, &sub, nl);
-	assert(reinst + reprog->len == end);
+	assert(end <= reinst + reprog->len);
 	return reinst;
 }