hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 241b7483ea954653512d4895ad6bacf79ee26ddc
parent e19a046c4be9b0654884259b9df94f41561e4fc3
Author: Cameron Moore <moorereason@gmail.com>
Date:   Sat, 16 Jan 2021 23:05:58 -0600

tpl: Fix race condition in text template baseof

Copy most of the htmltemplate cloning to the textemplate implementation
in the same function.

Diffstat:
Mtpl/tplimpl/template.go | 8+++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tpl/tplimpl/template.go b/tpl/tplimpl/template.go
@@ -598,10 +598,16 @@ func (t *templateHandler) applyBaseTemplate(overlay, base templateInfo) (tpl.Tem
 			}
 		}
 
-		templ, err = templ.Parse(overlay.template)
+		templ, err = texttemplate.Must(templ.Clone()).Parse(overlay.template)
 		if err != nil {
 			return nil, overlay.errWithFileContext("parse failed", err)
 		}
+
+		// The extra lookup is a workaround, see
+		// * https://github.com/golang/go/issues/16101
+		// * https://github.com/gohugoio/hugo/issues/2549
+		// templ = templ.Lookup(templ.Name())
+
 		return templ, nil
 	}