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
This commit is contained in:
Ian Lance Taylor 2016-08-04 16:48:28 +00:00
parent 7a62db9787
commit aa8a418bbc
2 changed files with 4 additions and 2 deletions

View file

@ -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.

View file

@ -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