summaryrefslogtreecommitdiff
path: root/src/pkg/text
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2012-10-07 09:26:59 +1100
committerRob Pike <r@golang.org>2012-10-07 09:26:59 +1100
commit4722212f7e5773b8cbce12f332ecf8862015d03e (patch)
tree5acc1f8a55a5c50964438a25fefc31afa40e06c7 /src/pkg/text
parenteb0871d1d66e91a61e4de72a2fca7a6cca8a71f4 (diff)
downloadgo-4722212f7e5773b8cbce12f332ecf8862015d03e.tar.gz
text/template: fix nil crash on Templates
Fixes issue 3872. R=golang-dev, rsc CC=golang-dev http://codereview.appspot.com/6612060
Diffstat (limited to 'src/pkg/text')
-rw-r--r--src/pkg/text/template/exec_test.go5
-rw-r--r--src/pkg/text/template/template.go3
2 files changed, 8 insertions, 0 deletions
diff --git a/src/pkg/text/template/exec_test.go b/src/pkg/text/template/exec_test.go
index d79365107..683e9ac76 100644
--- a/src/pkg/text/template/exec_test.go
+++ b/src/pkg/text/template/exec_test.go
@@ -811,3 +811,8 @@ func TestTree(t *testing.T) {
t.Errorf("expected %q got %q", expect, result)
}
}
+
+func TestExecuteOnNewTemplate(t *testing.T) {
+ // This is issue 3872.
+ _ = New("Name").Templates()
+}
diff --git a/src/pkg/text/template/template.go b/src/pkg/text/template/template.go
index 82fc9e5e3..a2b9062ad 100644
--- a/src/pkg/text/template/template.go
+++ b/src/pkg/text/template/template.go
@@ -117,6 +117,9 @@ func (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error
// Templates returns a slice of the templates associated with t, including t
// itself.
func (t *Template) Templates() []*Template {
+ if t.common == nil {
+ return nil
+ }
// Return a slice so we don't expose the map.
m := make([]*Template, 0, len(t.tmpl))
for _, v := range t.tmpl {