hugo

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

git clone git://git.shimmy1996.com/hugo.git
commit fe929114d3f34fe1999cd3cacd7f61c0ee0c0a54
parent d15fda500028c05fde2aa28ea53868eec01140f6
Author: Cameron Moore <moorereason@gmail.com>
Date:   Tue, 29 Mar 2016 18:54:46 -0500

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"`.

Diffstat:
Mtpl/template_funcs.go | 4++++
Mtpl/template_funcs_test.go | 1+
2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/tpl/template_funcs.go b/tpl/template_funcs.go
@@ -957,6 +957,10 @@ func delimit(seq, delimiter interface{}, last ...interface{}) (template.HTML, er
 
 // 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 {
diff --git a/tpl/template_funcs_test.go b/tpl/template_funcs_test.go
@@ -1565,6 +1565,7 @@ func TestSort(t *testing.T) {
 			"asc",
 			false,
 		},
+		{nil, nil, "asc", false},
 	} {
 		var result interface{}
 		var err error