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