]> Cypherpunks repositories - gostls13.git/commitdiff
text/template: fix nil crash on Templates
authorRob Pike <r@golang.org>
Sat, 6 Oct 2012 22:26:59 +0000 (09:26 +1100)
committerRob Pike <r@golang.org>
Sat, 6 Oct 2012 22:26:59 +0000 (09:26 +1100)
Fixes #3872.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6612060

src/pkg/text/template/exec_test.go
src/pkg/text/template/template.go

index d79365107d31d7d011801accffce6cdc9da2992d..683e9ac76b6d5255448301c076275bcdcc7d9a13 100644 (file)
@@ -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()
+}
index 82fc9e5e39db2a76439c02e31b24c90c9872a8d5..a2b9062ad1442006d5cbb5c2bffed945fc2c4160 100644 (file)
@@ -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 {