m/c/metroctl/install: fix custom NodeParameters
Unmarshaling into a nil pointer panics, use a locally-allocated variable
instead.
Change-Id: I0b00df6d6b06aaf662ddf93f996df804b8bbef5f
Reviewed-on: https://review.monogon.dev/c/monogon/+/4390
Tested-by: Jenkins CI
Reviewed-by: Jan Schär <jan@monogon.tech>
diff --git a/metropolis/cli/metroctl/cmd_install.go b/metropolis/cli/metroctl/cmd_install.go
index 3fd4802..c6e76dd 100644
--- a/metropolis/cli/metroctl/cmd_install.go
+++ b/metropolis/cli/metroctl/cmd_install.go
@@ -46,17 +46,17 @@
return nil, fmt.Errorf("failed to create config directory: %w", err)
}
- var params *api.NodeParameters
+ var params api.NodeParameters
if *nodeParamPath != "" {
nodeParamsRaw, err := os.ReadFile(*nodeParamPath)
if err != nil {
return nil, fmt.Errorf("failed to read node-params file: %w", err)
}
- if err := prototext.Unmarshal(nodeParamsRaw, params); err != nil {
+ if err := prototext.Unmarshal(nodeParamsRaw, ¶ms); err != nil {
return nil, fmt.Errorf("failed to parse node-params: %w", err)
}
} else {
- params = &api.NodeParameters{}
+ params = api.NodeParameters{}
}
if *bootstrap {
@@ -106,7 +106,7 @@
},
}
}
- return params, nil
+ return ¶ms, nil
}
func external(name, datafilePath string, flag *string) (string, error) {