From 12217f2878990ef7f754596eda687b1e50166e24 Mon Sep 17 00:00:00 2001 From: Maximilian Schander Date: Fri, 27 Oct 2017 15:26:15 +0200 Subject: autoport: Fix nil pointer deref when run without bd82x6x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When autoport is run on a system without supported southbridge it won't populate the coresponding data structure. By sanitiy checking after PCI detection autoport can exit cleanly and provide a sufficient error message. Error was: panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x4be595] goroutine 1 [running]: main.FIXMEEC(0xc42014af80, 0x14, 0xc42014afe0, 0x1a, 0xc4200a914f, 0x4, 0xc4200a916f, 0xf, 0xc420149e60, 0x28, ...) /coreboot/util/autoport/ec_fixme.go:14 +0x105 Change-Id: I6b0fcda76d33b0d3a0379c279f492160ce5add84 Signed-off-by: Maximilian Schander Reviewed-on: https://review.coreboot.org/22203 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Jonathan Neuschäfer --- util/autoport/root.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'util/autoport/root.go') diff --git a/util/autoport/root.go b/util/autoport/root.go index ca75d4b3851e..7e9e814506f7 100644 --- a/util/autoport/root.go +++ b/util/autoport/root.go @@ -1,6 +1,7 @@ package main import "fmt" +import "os" var supportedPCIDevices map[uint32]PCIDevice = map[uint32]PCIDevice{} var PCIMap map[PCIAddr]PCIDevData = map[PCIAddr]PCIDevData{} @@ -26,6 +27,10 @@ func ScanRoot(ctx Context) { } dev.Scan(ctx, pciDev) } + if SouthBridge == nil { + fmt.Println("Could not detect southbridge. Aborting!") + os.Exit(1) + } dmi := ctx.InfoSource.GetDMI() if !dmi.IsLaptop { NoEC(ctx) -- cgit v1.2.3