ACK: [PATCH] uefibootpath: include the null-terminated space in device path length

Alex Hung alex.hung at canonical.com
Tue Jan 20 09:18:55 UTC 2015


On 01/15/2015 03:59 PM, Ivan Hu wrote:
> The UEFI spec defined some Device Path, such as the Description String on BIOS
> Boot Specification Device Path as a null-terminated ASCII string that describes
> the boot device to a user. Those null-terminated spaces need to be included to the device path length.
> 
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
>  src/uefi/uefibootpath/uefibootpath.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/src/uefi/uefibootpath/uefibootpath.c b/src/uefi/uefibootpath/uefibootpath.c
> index 1c11963..6c521e4 100644
> --- a/src/uefi/uefibootpath/uefibootpath.c
> +++ b/src/uefi/uefibootpath/uefibootpath.c
> @@ -606,7 +606,7 @@ static int uefibootpath_check_dev_path(fwts_framework *fw, fwts_uefi_dev_path *d
>  					"The length of File Path Media Device Path is %" PRIu16 " bytes "
>  					"is not matching with adding the length of Path String %" PRIu16 " bytes.",
>  					len,
> -					(uint16_t)(sizeof(fwts_uefi_file_path_dev_path) + (fwts_uefi_str16len(f->path_name) * sizeof(uint16_t))));
> +					(uint16_t)(sizeof(fwts_uefi_file_path_dev_path) + ((fwts_uefi_str16len(f->path_name) + 1) * sizeof(uint16_t))));
>  				errors++;
>  				break;
>  			}
> @@ -660,12 +660,12 @@ static int uefibootpath_check_dev_path(fwts_framework *fw, fwts_uefi_dev_path *d
>  				break;
>  			}
>  			fwts_uefi_bios_dev_path *b = (fwts_uefi_bios_dev_path *)dev_path;
> -			if (len != (sizeof(fwts_uefi_bios_dev_path) + strlen(b->description))) {
> +			if (len != (sizeof(fwts_uefi_bios_dev_path) + strlen(b->description) + 1)) {
>  				fwts_failed(fw, LOG_LEVEL_MEDIUM, "UEFIBiosBootDevPathLength",
>  					"The length of BIOS Boot Specification Device Path is %" PRIu16 " bytes "
>  					"is not matching with adding the length of Description String %" PRIu16 " bytes.",
>  					len,
> -					(uint16_t)(sizeof(fwts_uefi_bios_dev_path) + strlen(b->description)));
> +					(uint16_t)(sizeof(fwts_uefi_bios_dev_path) + strlen(b->description) + 1));
>  				errors++;
>  			}
>  			break;
> 

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list