shithub: hugo

Download patch

ref: fe929114d3f34fe1999cd3cacd7f61c0ee0c0a54
parent: d15fda500028c05fde2aa28ea53868eec01140f6
author: Cameron Moore <[email protected]>
date: Tue Mar 29 14:54:46 EDT 2016

tpl: Fix panic in sort of nil sequence

Properly handle a nil sequence in the sortSeq function.  Test included.
Discovered while using `range sort .Site.Data.source.Undefined "foo"`.

--- a/tpl/template_funcs.go
+++ b/tpl/template_funcs.go
@@ -957,6 +957,10 @@
 
 // sortSeq returns a sorted sequence.
 func sortSeq(seq interface{}, args ...interface{}) (interface{}, error) {
+	if seq == nil {
+		return nil, errors.New("sequence must be provided")
+	}
+
 	seqv := reflect.ValueOf(seq)
 	seqv, isNil := indirect(seqv)
 	if isNil {
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -1565,6 +1565,7 @@
 			"asc",
 			false,
 		},
+		{nil, nil, "asc", false},
 	} {
 		var result interface{}
 		var err error