Compare commits
5 Commits
20bae8b94d
...
294eeed144
Author | SHA1 | Date |
---|---|---|
Jóhann B. Guðmundsson | 294eeed144 | |
Zbigniew Jędrzejewski-Szmek | 673d873a42 | |
Jan Janssen | d9690d8fe9 | |
Jan Janssen | 391719682b | |
Jan Janssen | 9ea4d81c12 |
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
[Distribution]
|
[Distribution]
|
||||||
Distribution=fedora
|
Distribution=fedora
|
||||||
Release=30
|
Release=31
|
||||||
|
|
||||||
[Output]
|
[Output]
|
||||||
Format=raw_btrfs
|
Format=raw_btrfs
|
||||||
|
|
|
@ -515,7 +515,6 @@ static BOOLEAN menu_run(
|
||||||
BOOLEAN exit = FALSE;
|
BOOLEAN exit = FALSE;
|
||||||
BOOLEAN run = TRUE;
|
BOOLEAN run = TRUE;
|
||||||
BOOLEAN wait = FALSE;
|
BOOLEAN wait = FALSE;
|
||||||
BOOLEAN cleared_screen = FALSE;
|
|
||||||
|
|
||||||
graphics_mode(FALSE);
|
graphics_mode(FALSE);
|
||||||
uefi_call_wrapper(ST->ConIn->Reset, 2, ST->ConIn, FALSE);
|
uefi_call_wrapper(ST->ConIn->Reset, 2, ST->ConIn, FALSE);
|
||||||
|
@ -527,16 +526,13 @@ static BOOLEAN menu_run(
|
||||||
|
|
||||||
if (config->console_mode_change != CONSOLE_MODE_KEEP) {
|
if (config->console_mode_change != CONSOLE_MODE_KEEP) {
|
||||||
err = console_set_mode(&config->console_mode, config->console_mode_change);
|
err = console_set_mode(&config->console_mode, config->console_mode_change);
|
||||||
if (!EFI_ERROR(err))
|
if (EFI_ERROR(err)) {
|
||||||
cleared_screen = TRUE;
|
uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
|
||||||
}
|
Print(L"Error switching console mode to %ld: %r.\r", (UINT64)config->console_mode, err);
|
||||||
|
}
|
||||||
if (!cleared_screen)
|
} else
|
||||||
uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
|
uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
|
||||||
|
|
||||||
if (config->console_mode_change != CONSOLE_MODE_KEEP && EFI_ERROR(err))
|
|
||||||
Print(L"Error switching console mode to %ld: %r.\r", (UINT64)config->console_mode, err);
|
|
||||||
|
|
||||||
err = uefi_call_wrapper(ST->ConOut->QueryMode, 4, ST->ConOut, ST->ConOut->Mode->Mode, &x_max, &y_max);
|
err = uefi_call_wrapper(ST->ConOut->QueryMode, 4, ST->ConOut, ST->ConOut->Mode->Mode, &x_max, &y_max);
|
||||||
if (EFI_ERROR(err)) {
|
if (EFI_ERROR(err)) {
|
||||||
x_max = 80;
|
x_max = 80;
|
||||||
|
|
|
@ -113,7 +113,6 @@ if have_gnu_efi
|
||||||
'-Wextra',
|
'-Wextra',
|
||||||
'-std=gnu90',
|
'-std=gnu90',
|
||||||
'-nostdinc',
|
'-nostdinc',
|
||||||
'-ggdb', '-O0',
|
|
||||||
'-fpic',
|
'-fpic',
|
||||||
'-fshort-wchar',
|
'-fshort-wchar',
|
||||||
'-ffreestanding',
|
'-ffreestanding',
|
||||||
|
@ -138,6 +137,13 @@ if have_gnu_efi
|
||||||
if get_option('werror') == true
|
if get_option('werror') == true
|
||||||
compile_args += ['-Werror']
|
compile_args += ['-Werror']
|
||||||
endif
|
endif
|
||||||
|
if get_option('buildtype') == 'debug'
|
||||||
|
compile_args += ['-ggdb', '-O0']
|
||||||
|
elif get_option('buildtype') == 'debugoptimized'
|
||||||
|
compile_args += ['-ggdb', '-Og']
|
||||||
|
else
|
||||||
|
compile_args += ['-O2']
|
||||||
|
endif
|
||||||
|
|
||||||
efi_ldflags = ['-T',
|
efi_ldflags = ['-T',
|
||||||
join_paths(efi_ldsdir, arch_lds),
|
join_paths(efi_ldsdir, arch_lds),
|
||||||
|
|
|
@ -23,14 +23,10 @@ static EFI_STATUS acquire_rng(UINTN size, VOID **ret) {
|
||||||
/* Try to acquire the specified number of bytes from the UEFI RNG */
|
/* Try to acquire the specified number of bytes from the UEFI RNG */
|
||||||
|
|
||||||
err = LibLocateProtocol((EFI_GUID*) &rng_protocol_guid, (VOID**) &rng);
|
err = LibLocateProtocol((EFI_GUID*) &rng_protocol_guid, (VOID**) &rng);
|
||||||
if (EFI_ERROR(err)) {
|
if (EFI_ERROR(err))
|
||||||
Print(L"Failed to acquire RNG protocol: %r\n", err);
|
|
||||||
return err;
|
return err;
|
||||||
}
|
if (!rng)
|
||||||
if (!rng) {
|
|
||||||
/* Print(L"RNG protocol not available.\n"); */
|
|
||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
|
||||||
|
|
||||||
data = AllocatePool(size);
|
data = AllocatePool(size);
|
||||||
if (!data)
|
if (!data)
|
||||||
|
@ -233,36 +229,25 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
|
||||||
|
|
||||||
validate_sha256();
|
validate_sha256();
|
||||||
|
|
||||||
if (mode == RANDOM_SEED_OFF) {
|
if (mode == RANDOM_SEED_OFF)
|
||||||
/* Print(L"Random seed handling turned off.\n"); */
|
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
|
||||||
|
|
||||||
/* Let's better be safe than sorry, and for now disable this logic in SecureBoot mode, so that we
|
/* Let's better be safe than sorry, and for now disable this logic in SecureBoot mode, so that we
|
||||||
* don't credit a random seed that is not authenticated. */
|
* don't credit a random seed that is not authenticated. */
|
||||||
if (secure_boot_enabled()) {
|
if (secure_boot_enabled())
|
||||||
/* Print(L"Not loading random seed, because we are in SecureBoot mode.\n"); */
|
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
|
||||||
|
|
||||||
/* Get some system specific seed that the installer might have placed in an EFI variable. We include
|
/* Get some system specific seed that the installer might have placed in an EFI variable. We include
|
||||||
* it in our hash. This is protection against golden master image sloppiness, and it remains on the
|
* it in our hash. This is protection against golden master image sloppiness, and it remains on the
|
||||||
* system, even when disk images are duplicated or swapped out. */
|
* system, even when disk images are duplicated or swapped out. */
|
||||||
err = acquire_system_token(&system_token, &system_token_size);
|
err = acquire_system_token(&system_token, &system_token_size);
|
||||||
if (mode != RANDOM_SEED_ALWAYS) {
|
if (mode != RANDOM_SEED_ALWAYS && EFI_ERROR(err))
|
||||||
/* if (err == EFI_NOT_FOUND) */
|
return err;
|
||||||
/* Print(L"Not loading random seed, because no system token is set.\n"); */
|
|
||||||
if (EFI_ERROR(err))
|
|
||||||
return err; /* in all other error cases we already logged */
|
|
||||||
}
|
|
||||||
|
|
||||||
err = uefi_call_wrapper(root_dir->Open, 5, root_dir, &handle, L"\\loader\\random-seed", EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0ULL);
|
err = uefi_call_wrapper(root_dir->Open, 5, root_dir, &handle, L"\\loader\\random-seed", EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0ULL);
|
||||||
if (EFI_ERROR(err)) {
|
if (EFI_ERROR(err)) {
|
||||||
if (err != EFI_NOT_FOUND)
|
if (err != EFI_NOT_FOUND)
|
||||||
Print(L"Failed to open random seed file: %r\n", err);
|
Print(L"Failed to open random seed file: %r\n", err);
|
||||||
/* else */
|
|
||||||
/* Print(L"Not loading random seed, because there is none.\n"); */
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue