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:
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