From 59ba35a327d9b5a2f08bc877cb18bf6c6f942b8c Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 19 Feb 2017 00:32:47 +0100 Subject: [PATCH] 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 --- sys/src/libregexp/regcomp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/src/libregexp/regcomp.c b/sys/src/libregexp/regcomp.c index 3e3ba6ae5..3bbc26ca9 100644 --- a/sys/src/libregexp/regcomp.c +++ b/sys/src/libregexp/regcomp.c @@ -299,7 +299,7 @@ compile(Renode *parsetr, Reprog *reprog, int nl) sub = 0; reinst = (Reinst*)(reprog+1); end = compile1(parsetr, reinst, &sub, nl); - assert(reinst + reprog->len == end); + assert(end <= reinst + reprog->len); return reinst; }