ACK: [PATCH] uefi: uefidump: fix the boot load option Boot#### larger than Boot1000 doesn't be parsered (LP:#1225850)
Colin Ian King
colin.king at canonical.com
Mon Sep 16 08:04:28 UTC 2013
On 16/09/13 07:47, Ivan Hu wrote:
> Some firmware/BIOS create the Boot path not in order, some of Boot load options
> are created larger than "Boot1000", such as Boot1001, Boot2001 etc. The uefidump
> checks the boot path with the "Boot0" causes these Boot load options cannot be
> parsered.
>
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
> src/uefi/uefidump/uefidump.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c
> index c072847..e4b6546 100644
> --- a/src/uefi/uefidump/uefidump.c
> +++ b/src/uefi/uefidump/uefidump.c
> @@ -18,6 +18,7 @@
> */
> #include <stddef.h>
> #include <inttypes.h>
> +#include <ctype.h>
>
> #include "fwts.h"
> #include "fwts_uefi.h"
> @@ -747,7 +748,6 @@ static uefidump_info uefidump_info_table[] = {
> { "LangCodes", uefidump_info_langcodes },
> { "Lang", uefidump_info_lang },
> { "Timeout", uefidump_info_timeout },
> - { "Boot0", uefidump_info_bootdev },
> { "dump-type0-", uefidump_info_dump_type0 },
> { "SecureBoot", uefidump_info_secure_boot },
> { "SetupMode", uefidump_info_setup_mode },
> @@ -781,6 +781,14 @@ static void uefidump_var(fwts_framework *fw, fwts_uefi_var *var)
> }
> }
>
> + /* Check the boot load option Boot####. #### is a printed hex value */
> + if ((strlen(varname) == 8) && (strncmp(varname, "Boot", 4) == 0)
> + && isxdigit(varname[4]) && isxdigit(varname[5])
> + && isxdigit(varname[6]) && isxdigit(varname[7])) {
> + uefidump_info_bootdev(fw, var);
> + return;
> + }
> +
> /* otherwise just do a plain old hex dump */
> uefidump_var_hexdump(fw, var);
> }
>
Acked-by: Colin Ian King <colin.king at canonical.com>
More information about the fwts-devel
mailing list