From: Rémy Oudompheng Date: Mon, 9 Jan 2012 20:54:31 +0000 (-0800) Subject: text/template: handle panic values that are not errors. X-Git-Tag: weekly.2012-01-15~117 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f5d024a74695510fcb0890807849ec95253a56cd;p=gostls13.git text/template: handle panic values that are not errors. The recover code assumes that the panic() argument was an error, but it is usually a simple string. Fixes #2663. R=golang-dev, r, r, gri CC=golang-dev, remy https://golang.org/cl/5527046 --- diff --git a/src/pkg/text/template/exec.go b/src/pkg/text/template/exec.go index acb88afee3..2171b279be 100644 --- a/src/pkg/text/template/exec.go +++ b/src/pkg/text/template/exec.go @@ -78,10 +78,14 @@ func (s *state) error(err error) { func errRecover(errp *error) { e := recover() if e != nil { - if _, ok := e.(runtime.Error); ok { + switch err := e.(type) { + case runtime.Error: + panic(e) + case error: + *errp = err + default: panic(e) } - *errp = e.(error) } }