[PATCH 3/4] uefirtvariable: skip test when specific attributes not supported (LP: #1356199)

Keng-Yu Lin keng-yu.lin at canonical.com
Wed Aug 13 09:10:40 UTC 2014


On Wed, Aug 13, 2014 at 4:00 PM, Ivan Hu <ivan.hu at canonical.com> wrote:
> From UEFI spec, when firmware doesn't support these operations with
> EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS or EFI_VARIABLE_TIME_BASED_AUTHENTICATED
> _WRITE_ACCESS or EFI_VARIABLE_APPEND_WRITE attributes are set,
> EFI_INVALID_PARAMETER shall be returned.
> When fwts gets the EFI_INVALID_PARAMETER returned with any of the attribute is set, skip the test.
>
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
>  src/uefi/uefirtvariable/uefirtvariable.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c
> index 6a22c80..a69c804 100644
> --- a/src/uefi/uefirtvariable/uefirtvariable.c
> +++ b/src/uefi/uefirtvariable/uefirtvariable.c
> @@ -780,6 +780,19 @@ static int setvariable_insertvariable(
>         ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable);
>
>         if (ioret == -1) {
> +               if ((status == EFI_INVALID_PARAMETER) &&
> +                       ((attributes | FWTS_UEFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS) ||
> +                       (attributes | FWTS_UEFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) ||
> +                       (attributes | FWTS_UEFI_VARIABLE_APPEND_WRITE))) {
> +                       fwts_uefi_print_status_info(fw, status);
> +                       fwts_skipped(fw,
> +                               "EFI_INVALID_PARAMETER shall be returned, "
> +                               "when firmware doesn't support these operations "
> +                               "with EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS or "
> +                               "EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS "
> +                               "EFI_VARIABLE_APPEND_WRITE attributes is set.");
> +                       return FWTS_SKIP;
> +               }
>                 if (datasize == 0)
>                         fwts_failed(fw, LOG_LEVEL_HIGH,
>                                 "UEFIRuntimeSetVariable",
> --
> 1.7.9.5
>
>

Acked-by: Keng-Yu Lin <kengyu at canonical.com>



More information about the fwts-devel mailing list