aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2022-02-02 16:41:32 -0500
committerRuss Cox <rsc@golang.org>2022-02-10 15:23:05 +0000
commit452f24ae94f38afa3704d4361d91d51218405c0a (patch)
tree3d621153728412ca9be6cd950970ba24814ba6c5 /src/runtime
parent656d3f4401e1fdb628e24027cf91cc803c7a0dac (diff)
downloadgo-452f24ae94f38afa3704d4361d91d51218405c0a.tar.xz
regexp/syntax: reject very deeply nested regexps in Parse
The regexp code assumes it can recurse over the structure of a regexp safely. Go's growable stacks make that reasonable for all plausible regexps, but implausible ones can reach the “infinite recursion?” stack limit. This CL limits the depth of any parsed regexp to 1000. That is, the depth of the parse tree is required to be ≤ 1000. Regexps that require deeper parse trees will return ErrInternalError. A future CL will change the error to ErrInvalidDepth, but using ErrInternalError for now avoids introducing new API in point releases when this is backported. Fixes #51112. Change-Id: I97d2cd82195946eb43a4ea8561f5b95f91fb14c5 Reviewed-on: https://go-review.googlesource.com/c/go/+/384616 Trust: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime')
0 files changed, 0 insertions, 0 deletions