From f5d024a74695510fcb0890807849ec95253a56cd Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9my=20Oudompheng?= Date: Mon, 9 Jan 2012 12:54:31 -0800 Subject: [PATCH] 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 --- src/pkg/text/template/exec.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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) } } -- 2.48.1