Make TPM errors less fatal
Handle TPM errors, and stop trying to use the TPM once we hit one.
This commit is contained in:
parent
5962f7d5e7
commit
bf25cda14e
11 changed files with 29 additions and 4 deletions
|
@ -170,6 +170,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
|
|||
goto fail;
|
||||
}
|
||||
grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_linuxefi", "Initrd");
|
||||
grub_print_error();
|
||||
ptr += cursize;
|
||||
grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4));
|
||||
ptr += ALIGN_UP_OVERHEAD (cursize, 4);
|
||||
|
@ -226,6 +227,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
grub_tpm_measure (kernel, filelen, GRUB_BINARY_PCR, "grub_linuxefi", "Kernel");
|
||||
grub_print_error();
|
||||
|
||||
if (! grub_linuxefi_secure_validate (kernel, filelen))
|
||||
{
|
||||
|
|
|
@ -719,6 +719,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux", "Kernel");
|
||||
grub_print_error();
|
||||
|
||||
grub_memcpy (&lh, kernel, sizeof (lh));
|
||||
|
||||
|
|
|
@ -166,6 +166,7 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
|||
}
|
||||
|
||||
grub_tpm_measure((unsigned char*)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename);
|
||||
grub_print_error();
|
||||
|
||||
header = find_header (buffer, len);
|
||||
|
||||
|
|
|
@ -162,6 +162,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
|
|||
}
|
||||
|
||||
grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux16", "Kernel");
|
||||
grub_print_error();
|
||||
|
||||
grub_memcpy (&lh, kernel, sizeof (lh));
|
||||
kernel_offset = sizeof (lh);
|
||||
|
|
|
@ -290,6 +290,8 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx,
|
|||
return grub_errno;
|
||||
}
|
||||
grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_initrd", "Initrd");
|
||||
grub_print_error();
|
||||
|
||||
ptr += cursize;
|
||||
}
|
||||
if (newc)
|
||||
|
|
|
@ -386,6 +386,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
grub_file_close (file);
|
||||
grub_tpm_measure (module, size, GRUB_BINARY_PCR, "grub_multiboot", argv[0]);
|
||||
grub_print_error();
|
||||
return GRUB_ERR_NONE;
|
||||
}
|
||||
|
||||
|
|
|
@ -128,6 +128,7 @@ grub_multiboot_load (grub_file_t file, const char *filename)
|
|||
COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0);
|
||||
|
||||
grub_tpm_measure ((unsigned char *)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename);
|
||||
grub_print_error();
|
||||
|
||||
header = find_header (buffer, len);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue