From: Ian Lance Taylor Date: Thu, 4 Aug 2016 16:48:28 +0000 (+0000) Subject: text/template: reduce maxExecDepth for gccgo X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=aa8a418bbcb6c0f5053fb8a40f7586d7388b8bf5;p=gcc.git text/template: reduce maxExecDepth for gccgo When using gccgo on systems without full support for split stacks a recursive template can overrun the available stack space. Reduce the limit from 100000 to 10000 to make this less likely. It's still high enough that real uses will work. Reviewed-on: https://go-review.googlesource.com/25467 From-SVN: r239141 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 6221a249252..92cb99aae70 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -ca5b64137f013e3104fd74ee7d07ba556a501187 +235dffb0de1e99d6f521f052067f0e936bf63baa The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/text/template/exec.go b/libgo/go/text/template/exec.go index 8e5ad93ca6b..7cf7bb69c81 100644 --- a/libgo/go/text/template/exec.go +++ b/libgo/go/text/template/exec.go @@ -19,7 +19,9 @@ import ( // templates. This limit is only practically reached by accidentally // recursive template invocations. This limit allows us to return // an error instead of triggering a stack overflow. -const maxExecDepth = 100000 +// For gccgo we make this 10000 rather than 100000 to avoid stack overflow +// on non-split-stack systems. +const maxExecDepth = 10000 // state represents the state of an execution. It's not part of the // template so that multiple executions of the same template