Go to file
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
asm-tests asm-tests/i386-pc: Check that movl is 5 bytes. 2016-09-28 20:31:04 +03:00
build-aux Autogenerate ChangeLog from git changelog. 2015-01-24 17:29:50 +01:00
conf python: Use AM_PATH_PYTHON to determine interpreter for gentpl.py 2018-09-27 14:52:28 +02:00
docs verifiers: Add TPM documentation 2018-12-12 14:51:43 +01:00
grub-core tpm: Fix bug in GRUB2 TPM module 2019-01-21 11:22:36 +01:00
include verifiers: Core TPM support 2018-12-12 14:51:26 +01:00
m4 update m4/extern-inline.m4 to upstream version to fix compilation on FreeBSD 2015-03-05 19:25:56 +03:00
po fs: Add F2FS support 2018-04-10 19:05:04 +02:00
tests pgp: Fix emu build and tests after pgp module renaming 2019-01-14 13:05:18 +01:00
themes/starfield Starfield theme. 2012-02-23 17:21:38 +01:00
unicode * unicode: Import Unicode 6.0 data. 2011-12-25 16:17:25 +01:00
util grub-mkconfig/20_linux_xen: Support multiple early initrd images 2019-01-14 11:56:19 +01:00
.gitignore .gitignore: Add grub-core/build-grub-module-verifier 2016-11-12 12:07:31 +03:00
ABOUT-NLS automake commit without merge history 2010-05-06 11:34:04 +05:30
AUTHORS 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org> 2005-09-03 16:54:27 +00:00
BUGS * BUGS: New file. 2011-01-11 00:06:01 +01:00
COPYING 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org> 2007-07-21 23:32:33 +00:00
ChangeLog-2015 Autogenerate ChangeLog from git changelog. 2015-01-24 17:29:50 +01:00
INSTALL build: Use pkg-config to find FreeType 2018-09-27 14:45:59 +02:00
Makefile.am build: Capitalise *freetype_* variables 2018-09-27 14:45:09 +02:00
Makefile.util.def btrfs: Add zstd support to grub btrfs 2018-11-26 23:10:11 +01:00
NEWS NEWS updates 2016-11-22 20:51:54 +03:00
README README: Remove dead link to the wiki 2015-11-06 04:31:23 +01:00
THANKS 2009-12-11 Robert Millan <rmh.grub@aybabtu.com> 2009-12-11 22:44:47 +00:00
TODO TODO: Remove obsolete link 2016-02-12 17:51:52 +01:00
acinclude.m4 Fix -nopie/-nopie check. 2017-01-30 19:38:55 +01:00
autogen.sh autogen: Use cp instead of ln -s. 2015-11-08 18:45:57 +01:00
config.h.in Remove libgcc dependency. 2015-03-03 20:50:37 +01:00
configure.ac xen_pvh: Add support to configure 2018-12-12 12:03:28 +01:00
coreboot.cfg * coreboot.cfg: Add missing file. 2013-11-20 00:52:23 +01:00
geninit.sh automake commit without merge history 2010-05-06 11:34:04 +05:30
gentpl.py xen_pvh: Add build runes for grub-core 2018-12-12 12:03:27 +01:00
linguas.sh linguas: Don't skip ko.po. 2017-02-04 00:06:57 +01:00

README

This is GRUB 2, the second version of the GRand Unified Bootloader.
GRUB 2 is rewritten from scratch to make GNU GRUB cleaner, safer, more
robust, more powerful, and more portable.

See the file NEWS for a description of recent changes to GRUB 2.

See the file INSTALL for instructions on how to build and install the
GRUB 2 data and program files.

Please visit the official web page of GRUB 2, for more information.
The URL is <http://www.gnu.org/software/grub/grub.html>.

More extensive documentation is available in the Info manual,
accessible using 'info grub' after building and installing GRUB 2.

There are a number of important user-visible differences from the
first version of GRUB, now known as GRUB Legacy. For a summary, please
see:

  info grub Introduction 'Changes from GRUB Legacy'