grub/grub-core
Max Tottenham f8d1ad2678 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>
2019-01-21 11:22:36 +01:00
..
boot diskboot: Trivial correction on stale comments 2018-04-23 13:04:58 +02:00
bus ehci: Fix compilation on i386 2017-07-09 21:31:19 +02:00
commands tpm: Fix bug in GRUB2 TPM module 2019-01-21 11:22:36 +01:00
disk verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
efiemu verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
font verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
fs btrfs: Add zstd support to grub btrfs 2018-11-26 23:10:11 +01: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 2018-11-09 13:25:31 +01:00
gfxmenu verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01: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 2018-11-09 13:25:31 +01:00
kern verifiers: Core TPM support 2018-12-12 14:51:26 +01:00
lib zstd: Import upstream zstd-1.3.6 2018-11-26 23:09:45 +01:00
loader grub-core/loader/efi/fdt.c: Do not copy random memory 2019-01-14 11:53:52 +01:00
mmap xen: Prepare common code for Xen PVH support 2018-12-12 12:03:27 +01:00
net ofnet: Fix build regression in grub_ieee1275_parse_bootpath() 2018-11-28 13:48:45 +01:00
normal verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
osdep generic/blocklist: Fix implicit declaration of function grub_file_filter_disable_compression() 2018-11-21 14:45:33 +01:00
partmap msdos: Fix overflow in converting partition start and length into 512B blocks 2018-09-27 14:56:45 +02:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script verifiers: Verify commands executed by grub 2018-12-12 13:17:52 +01:00
term efi/console: Fix the "enter" key not working on x86 tablets 2018-07-11 11:53:28 +02:00
tests Regenerate checksum.h with newer unifont. 2017-08-30 17:12:04 +02:00
video verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01: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 2018-03-05 14:08:22 +01:00
genmoddep.awk enforcing fixup 2017-08-14 16:27:10 +02:00
gensyminfo.sh.in Fix shebang for termux. 2017-05-03 12:49:31 +02: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 2018-12-12 12:03:27 +01:00
Makefile.core.def verifiers: Core TPM support 2018-12-12 14:51:26 +01:00
modinfo.sh.in Fix shebang for termux. 2017-05-03 12:49:31 +02:00