From patchwork Wed Aug 13 08:00:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Hu X-Patchwork-Id: 379528 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 2628214013F; Wed, 13 Aug 2014 18:01:22 +1000 (EST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1XHTUh-00074Z-On; Wed, 13 Aug 2014 08:01:15 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1XHTU7-0006gn-DD for fwts-devel@lists.ubuntu.com; Wed, 13 Aug 2014 08:00:39 +0000 Received: from [175.41.48.77] (helo=canonical.com) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1XHTU6-0003mn-Qx; Wed, 13 Aug 2014 08:00:39 +0000 From: Ivan Hu To: fwts-devel@lists.ubuntu.com Subject: [PATCH 3/4] uefirtvariable: skip test when specific attributes not supported (LP: #1356199) Date: Wed, 13 Aug 2014 16:00:35 +0800 Message-Id: <1407916835-2862-1-git-send-email-ivan.hu@canonical.com> X-Mailer: git-send-email 1.7.9.5 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: fwts-devel-bounces@lists.ubuntu.com 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 Acked-by: Keng-Yu Lin Acked-by: Alex Hung --- 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",