|
|
00e791 |
From b5e10f70c7a495dc1788e3604803ee633f1e5f76 Mon Sep 17 00:00:00 2001
|
|
|
00e791 |
From: Stuart Hayes <stuart.w.hayes@gmail.com>
|
|
|
00e791 |
Date: Fri, 8 Feb 2019 15:48:20 -0500
|
|
|
00e791 |
Subject: [PATCH 31/62] Hook exit when shim_lock protocol installed
|
|
|
00e791 |
|
|
|
00e791 |
A recent commit moved where the shim_lock protocol is loaded and
|
|
|
00e791 |
unloaded, but did not move where exit was hooked and unhooked. Exit
|
|
|
00e791 |
needs to be hooked when the protocol is installed, so that the protocol
|
|
|
00e791 |
will be uninstalled on exit. Otherwise, the system can crash if, for
|
|
|
00e791 |
example, shim loads grub, the user exits grub, shim is run again, which
|
|
|
00e791 |
installs a second instance of the protocol, and then grub tries to use
|
|
|
00e791 |
the shim_lock protocol that was installed by the first instance of shim.
|
|
|
00e791 |
|
|
|
00e791 |
Signed-off-by: Stuart Hayes <stuart.w.hayes@gmail.com>
|
|
|
00e791 |
Upstream-commit-id: 06c92591e94
|
|
|
00e791 |
---
|
|
|
00e791 |
shim.c | 5 +++--
|
|
|
00e791 |
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
00e791 |
|
|
|
00e791 |
diff --git a/shim.c b/shim.c
|
|
|
00e791 |
index f69e69487fc..16911a37b17 100644
|
|
|
00e791 |
--- a/shim.c
|
|
|
00e791 |
+++ b/shim.c
|
|
|
00e791 |
@@ -2474,9 +2474,9 @@ shim_init(void)
|
|
|
00e791 |
loader_is_participating = 0;
|
|
|
00e791 |
}
|
|
|
00e791 |
|
|
|
00e791 |
- hook_exit(systab);
|
|
|
00e791 |
}
|
|
|
00e791 |
|
|
|
00e791 |
+ hook_exit(systab);
|
|
|
00e791 |
return install_shim_protocols();
|
|
|
00e791 |
}
|
|
|
00e791 |
|
|
|
00e791 |
@@ -2494,9 +2494,10 @@ shim_fini(void)
|
|
|
00e791 |
* Remove our hooks from system services.
|
|
|
00e791 |
*/
|
|
|
00e791 |
unhook_system_services();
|
|
|
00e791 |
- unhook_exit();
|
|
|
00e791 |
}
|
|
|
00e791 |
|
|
|
00e791 |
+ unhook_exit();
|
|
|
00e791 |
+
|
|
|
00e791 |
/*
|
|
|
00e791 |
* Free the space allocated for the alternative 2nd stage loader
|
|
|
00e791 |
*/
|
|
|
00e791 |
--
|
|
|
00e791 |
2.26.2
|
|
|
00e791 |
|