From 1a64ece04f9859a63e9fe436bc983c75d75b320d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20C=20McCord?= Date: Thu, 19 Sep 2019 15:23:14 -0400 Subject: [PATCH] fix(machined): add nil checks to metal initializer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Check that the userdata has an Install section before trying to use it Fixes #1186 Signed-off-by: Seán C McCord --- .../machined/internal/runtime/initializer/metal/metal.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/app/machined/internal/runtime/initializer/metal/metal.go b/internal/app/machined/internal/runtime/initializer/metal/metal.go index 10020ea02..dd8715d55 100644 --- a/internal/app/machined/internal/runtime/initializer/metal/metal.go +++ b/internal/app/machined/internal/runtime/initializer/metal/metal.go @@ -5,6 +5,7 @@ package metal import ( + "errors" "fmt" "strings" @@ -25,6 +26,12 @@ type Metal struct{} // Initialize implements the Initializer interface. func (b *Metal) Initialize(platform platform.Platform, data *userdata.UserData) (err error) { + if data == nil { + return errors.New("no userdata") + } + if data.Install == nil { + return errors.New("userdata has no install section") + } // Attempt to discover a previous installation // An err case should only happen if no partitions // with matching labels were found