From 5c34766809a95c3148a7b98a3054f1a6c4e89953 Mon Sep 17 00:00:00 2001
From: Scott Mansell <phiren@gmail.com>
Date: Sun, 2 Nov 2014 20:34:59 +1300
Subject: [PATCH] Propagate elf loading failure up.

Also fix mistake in error message.
---
 Source/Core/Core/Boot/Boot.cpp      | 3 ++-
 Source/Core/Core/Boot/Boot_ELF.cpp  | 3 ++-
 Source/Core/Core/Boot/ElfReader.cpp | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/Source/Core/Core/Boot/Boot.cpp b/Source/Core/Core/Boot/Boot.cpp
index 7b019099c7..cfb5fc81a9 100644
--- a/Source/Core/Core/Boot/Boot.cpp
+++ b/Source/Core/Core/Boot/Boot.cpp
@@ -349,7 +349,8 @@ bool CBoot::BootUp()
 			EmulatedBS2_GC(true);
 
 		Load_FST(_StartupPara.bWii);
-		Boot_ELF(_StartupPara.m_strFilename);
+		if(!Boot_ELF(_StartupPara.m_strFilename))
+			return false;
 
 		UpdateDebugger_MapLoaded();
 		Dolphin_Debugger::AddAutoBreakpoints();
diff --git a/Source/Core/Core/Boot/Boot_ELF.cpp b/Source/Core/Core/Boot/Boot_ELF.cpp
index 8565aa9cc0..d41c95c1ba 100644
--- a/Source/Core/Core/Boot/Boot_ELF.cpp
+++ b/Source/Core/Core/Boot/Boot_ELF.cpp
@@ -64,7 +64,8 @@ bool CBoot::Boot_ELF(const std::string& filename)
 
 	// Load ELF into GameCube Memory
 	ElfReader reader(elf.get());
-	reader.LoadIntoMemory();
+	if(!reader.LoadIntoMemory())
+		return false;
 
 	if (!reader.LoadSymbols())
 	{
diff --git a/Source/Core/Core/Boot/ElfReader.cpp b/Source/Core/Core/Boot/ElfReader.cpp
index fa6499802c..c913decfa1 100644
--- a/Source/Core/Core/Boot/ElfReader.cpp
+++ b/Source/Core/Core/Boot/ElfReader.cpp
@@ -104,7 +104,7 @@ bool ElfReader::LoadIntoMemory()
 
 	if (bRelocate)
 	{
-		PanicAlert("Error: Dolphin doesn't know to load a relocatable elf.");
+		PanicAlert("Error: Dolphin doesn't know how to load a relocatable elf.");
 		return false;
 	}