configs/configupgrade: fix panic on nil hilNode (#22181)
In some cases (see #22020 for a specific example), the parsed hilNode can be nil. This causes a series of panics. Instead, return an error and move on.
This commit is contained in:
parent
eaa57243c7
commit
66f4a48b8c
|
@ -110,17 +110,21 @@ Value:
|
|||
Subject: hcl1PosRange(filename, tv.Pos).Ptr(),
|
||||
})
|
||||
}
|
||||
if _, ok := hilNode.(*hilast.Output); !ok {
|
||||
// hil.Parse usually produces an output, but it can sometimes
|
||||
// produce an isolated expression if the input is entirely
|
||||
// a single interpolation.
|
||||
hilNode = &hilast.Output{
|
||||
Exprs: []hilast.Node{hilNode},
|
||||
Posx: hilNode.Pos(),
|
||||
if hilNode != nil {
|
||||
if _, ok := hilNode.(*hilast.Output); !ok {
|
||||
// hil.Parse usually produces an output, but it can sometimes
|
||||
// produce an isolated expression if the input is entirely
|
||||
// a single interpolation.
|
||||
if hilNode != nil {
|
||||
hilNode = &hilast.Output{
|
||||
Exprs: []hilast.Node{hilNode},
|
||||
Posx: hilNode.Pos(),
|
||||
}
|
||||
}
|
||||
}
|
||||
interpDiags := upgradeHeredocBody(&buf, hilNode.(*hilast.Output), filename, an)
|
||||
diags = diags.Append(interpDiags)
|
||||
}
|
||||
interpDiags := upgradeHeredocBody(&buf, hilNode.(*hilast.Output), filename, an)
|
||||
diags = diags.Append(interpDiags)
|
||||
}
|
||||
if !strings.HasSuffix(body, "\n") {
|
||||
// The versions of HCL1 vendored into Terraform <=0.11
|
||||
|
|
Loading…
Reference in New Issue