mirror of
https://github.com/golang/go
synced 2024-11-24 17:20:12 -07:00
text/template: avoid index-out-of-range panic when accessing args[0]
Fixes #70341 Change-Id: I3df0175929b4aed76522ef36aecfa924f3883d9e
This commit is contained in:
parent
8e714281e4
commit
88d346a7ca
@ -855,7 +855,7 @@ func (s *state) evalCall(dot, fun reflect.Value, isBuiltin bool, node parse.Node
|
|||||||
|
|
||||||
// Special case for the "call" builtin.
|
// Special case for the "call" builtin.
|
||||||
// Insert the name of the callee function as the first argument.
|
// Insert the name of the callee function as the first argument.
|
||||||
if isBuiltin && name == "call" {
|
if len(args) > 0 && isBuiltin && name == "call" {
|
||||||
calleeName := args[0].String()
|
calleeName := args[0].String()
|
||||||
argv = append([]reflect.Value{reflect.ValueOf(calleeName)}, argv...)
|
argv = append([]reflect.Value{reflect.ValueOf(calleeName)}, argv...)
|
||||||
fun = reflect.ValueOf(call)
|
fun = reflect.ValueOf(call)
|
||||||
|
@ -1779,12 +1779,19 @@ func TestFunctionCheckDuringCall(t *testing.T) {
|
|||||||
input string
|
input string
|
||||||
data any
|
data any
|
||||||
wantErr string
|
wantErr string
|
||||||
}{{
|
}{
|
||||||
name: "call nothing",
|
{
|
||||||
input: `{{call}}`,
|
name: "call with no arguments",
|
||||||
data: tVal,
|
input: `{{ 1 | call }}`,
|
||||||
wantErr: "wrong number of args for call: want at least 1 got 0",
|
data: tVal,
|
||||||
},
|
wantErr: "error calling call: unreachable",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "call nothing",
|
||||||
|
input: `{{call}}`,
|
||||||
|
data: tVal,
|
||||||
|
wantErr: "wrong number of args for call: want at least 1 got 0",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "call non-function",
|
name: "call non-function",
|
||||||
input: "{{call .True}}",
|
input: "{{call .True}}",
|
||||||
|
Loading…
Reference in New Issue
Block a user