[PATCH 3/4] uefirtvariable: skip test when specific attributes not supported (LP: #1356199)
Ivan Hu
ivan.hu at canonical.com
Wed Aug 13 08:00:35 UTC 2014
>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
More information about the fwts-devel
mailing list