grub/grub-core
Max Tottenham 019c0941b8 tpm: Fix bug in GRUB2 TPM module
The value of tpm_handle changes between successive calls to grub_tpm_handle_find(),
as instead of simply copying the stored pointer we end up taking the address of
said pointer when using the cached value of grub_tpm_handle.

This causes grub_efi_open_protocol() to return a nullptr in grub_tpm2_execute()
and grub_tpm2_log_event(). Said nullptr goes unchecked and
efi_call_5(tpm->hash_log_extend_event,...) ends up jumping to 0x0, Qemu crashes
once video ROM is reached at 0xb0000.

This patch seems to do the trick of fixing that bug, but we should also ensure
that all calls to grub_efi_open_protocol() are checked so that we don't start
executing low memory.

Signed-off-by: Max Tottenham <mtottenh@akamai.com>
Reviewed-by: Matthew Garrett <mjg59@google.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2020-09-21 16:43:54 -04:00
..
boot diskboot: Trivial correction on stale comments 2020-09-21 12:43:53 -04:00
bus ehci: Fix compilation on i386 2020-09-21 11:32:45 -04:00
commands tpm: Fix bug in GRUB2 TPM module 2020-09-21 16:43:54 -04:00
disk verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
efiemu verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
font verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
fs btrfs: Add zstd support to grub btrfs 2020-09-21 13:46:35 -04:00
gdb i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
gettext verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
gfxmenu verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
gnulib i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
kern verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
lib verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
loader grub-core/loader/efi/fdt.c: Do not copy random memory 2020-09-21 16:43:54 -04:00
mmap xen: Prepare common code for Xen PVH support 2020-09-21 13:46:35 -04:00
net ofnet: Fix build regression in grub_ieee1275_parse_bootpath() 2020-09-21 13:46:35 -04:00
normal verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
osdep generic/blocklist: Fix implicit declaration of function grub_file_filter_disable_compression() 2020-09-21 13:46:34 -04:00
partmap msdos: Fix overflow in converting partition start and length into 512B blocks 2020-09-21 13:29:05 -04:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
term efi/console: Fix the "enter" key not working on x86 tablets 2020-09-21 13:19:10 -04:00
tests Regenerate checksum.h with newer unifont. 2020-09-21 12:02:37 -04:00
video verifiers: File type for fine-grained signature-verification controlling 2020-09-21 13:29:05 -04:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in .mod files: Strip annobin annotations and .eh_frame, and their relocations 2020-09-21 12:16:25 -04:00
genmoddep.awk enforcing fixup 2020-09-21 12:02:37 -04:00
gensyminfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
gnulib-fix-gcc7-fallthrough.diff Add gnulib-fix-gcc7-fallthrough.diff 2017-04-04 19:37:47 +03:00
gnulib-fix-null-deref.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-fix-width.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-abort.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-gets.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
Makefile.am xen_pvh: Add build runes for grub-core 2020-09-21 13:57:20 -04:00
Makefile.core.def verifiers: Core TPM support 2020-09-21 16:43:54 -04:00
modinfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00