From patchwork Tue Aug 7 11:18:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Hu X-Patchwork-Id: 954477 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=fwts-devel-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41lBpp20xhz9s3x; Tue, 7 Aug 2018 21:18:39 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fn00X-0001Xs-Jf; Tue, 07 Aug 2018 11:18:33 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1fn00V-0001XW-0X for fwts-devel@lists.ubuntu.com; Tue, 07 Aug 2018 11:18:31 +0000 Received: from 112-104-30-181.adsl.dynamic.seed.net.tw ([112.104.30.181] helo=canonical.com) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fn00U-0005jI-7s; Tue, 07 Aug 2018 11:18:30 +0000 From: Ivan Hu To: fwts-devel@lists.ubuntu.com Subject: [PATCH 1/2] uefi: clean and check status with magic value ~0ULL (LP: #1784365) Date: Tue, 7 Aug 2018 19:18:24 +0800 Message-Id: <1533640705-7974-1-git-send-email-ivan.hu@canonical.com> X-Mailer: git-send-email 2.7.4 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.20 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" This patch add the clean the status value to ~0ULL, which is not define on UEFI Spec., can safely be used to avoid some wrong staus reports and false alarms. Also add the checking of staus of value ~0ULL on fwts_uefi_print_status_info function. Signed-off-by: Ivan Hu Acked-by: Colin Ian King Acked-by: Alex Hung --- src/lib/src/fwts_uefi.c | 7 ++++++ src/uefi/securebootcert/securebootcert.c | 2 +- src/uefi/uefirtauthvar/uefirtauthvar.c | 2 ++ src/uefi/uefirtmisc/uefirtmisc.c | 5 ++-- src/uefi/uefirttime/uefirttime.c | 29 ++++++++++++++-------- src/uefi/uefirtvariable/uefirtvariable.c | 42 ++++++++++++++++++++++++-------- src/uefi/uefivarinfo/uefivarinfo.c | 5 ++++ 7 files changed, 69 insertions(+), 23 deletions(-) diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c index e200904..f719466 100644 --- a/src/lib/src/fwts_uefi.c +++ b/src/lib/src/fwts_uefi.c @@ -27,6 +27,8 @@ #include #include #include +#include +#include #include "fwts.h" #include "fwts_uefi.h" @@ -468,6 +470,11 @@ void fwts_uefi_print_status_info(fwts_framework *fw, const uint64_t status) const uefistatus_info *info; + if (status == ~0ULL) { + fwts_log_info(fw, "fwts test ioctl() failed, errno=%d (%s)", errno, strerror(errno)); + return; + } + for (info = uefistatus_info_table; info->mnemonic != NULL; info++) { if (status == info->statusvalue) { fwts_log_info(fw, "Return status: %s. %s", info->mnemonic, info->description); diff --git a/src/uefi/securebootcert/securebootcert.c b/src/uefi/securebootcert/securebootcert.c index f1161d6..41712a7 100644 --- a/src/uefi/securebootcert/securebootcert.c +++ b/src/uefi/securebootcert/securebootcert.c @@ -525,7 +525,7 @@ static int securebootcert_setvar( long ioret; struct efi_setvariable setvariable; - uint64_t status; + uint64_t status = ~0ULL; uint64_t datasize = 1; setvariable.VariableName = varname; diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c index 7384ae3..c59b087 100644 --- a/src/uefi/uefirtauthvar/uefirtauthvar.c +++ b/src/uefi/uefirtauthvar/uefirtauthvar.c @@ -70,6 +70,7 @@ static long setvar( setvariable.DataSize = datasize; setvariable.Data = data; setvariable.status = status; + *status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); return ioret; @@ -91,6 +92,7 @@ static long getvar( getvariable.DataSize = getdatasize; getvariable.Data = data; getvariable.status = status; + *status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_VARIABLE, &getvariable); return ioret; diff --git a/src/uefi/uefirtmisc/uefirtmisc.c b/src/uefi/uefirtmisc/uefirtmisc.c index 7faa910..5679d26 100644 --- a/src/uefi/uefirtmisc/uefirtmisc.c +++ b/src/uefi/uefirtmisc/uefirtmisc.c @@ -85,6 +85,7 @@ static int getnexthighmonotoniccount_test(fwts_framework *fw, uint32_t multitest getnexthighmonotoniccount.status = &status; for (i = 0; i < multitesttime; i++) { + status = ~0ULL; long ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTHIGHMONOTONICCOUNT, &getnexthighmonotoniccount); if (ioret == -1) { @@ -124,8 +125,8 @@ static int querycapsulecapabilities_test(fwts_framework *fw, uint32_t multitestt querycapsulecapabilities.ResetType = &resettype; for (i = 0; i < multitesttime; i++) { + status = ~0ULL; long ioret = ioctl(fd, EFI_RUNTIME_QUERY_CAPSULECAPABILITIES, &querycapsulecapabilities); - if (ioret == -1) { if (status == EFI_UNSUPPORTED) { fwts_skipped(fw, "Not support the UEFI QueryCapsuleCapabilities runtime interface" @@ -219,7 +220,7 @@ static int uefirtmisc_test2(fwts_framework *fw) static int uefirtmisc_test3(fwts_framework *fw) { - uint64_t status; + uint64_t status = ~0ULL; long ioret; struct efi_getnexthighmonotoniccount getnexthighmonotoniccount; diff --git a/src/uefi/uefirttime/uefirttime.c b/src/uefi/uefirttime/uefirttime.c index ee013a7..be824e6 100644 --- a/src/uefi/uefirttime/uefirttime.c +++ b/src/uefi/uefirttime/uefirttime.c @@ -206,7 +206,7 @@ static int uefirttime_test1(fwts_framework *fw) EFI_TIME efi_time; EFI_TIME_CAPABILITIES efi_time_cap; - uint64_t status; + uint64_t status = ~0ULL; gettime.Capabilities = &efi_time_cap; gettime.Time = &efi_time; @@ -236,7 +236,7 @@ static int uefirttime_test_gettime_invalid( { long ioret; struct efi_gettime gettime; - uint64_t status; + uint64_t status = ~0ULL; gettime.Capabilities = efi_time_cap; gettime.Time = efi_time; @@ -277,7 +277,7 @@ static int uefirttime_test4(fwts_framework *fw) long ioret; struct efi_settime settime; - uint64_t status; + uint64_t status = ~0ULL; struct efi_gettime gettime; EFI_TIME oldtime; @@ -325,6 +325,7 @@ static int uefirttime_test4(fwts_framework *fw) time.TimeZone = 2047; settime.Time = &time; + status = ~0ULL; settime.status = &status; ioret = ioctl(fd, EFI_RUNTIME_SET_TIME, &settime); @@ -338,6 +339,7 @@ static int uefirttime_test4(fwts_framework *fw) sleep(1); gettime.Time = &newtime; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_TIME, &gettime); @@ -380,6 +382,7 @@ static int uefirttime_test4(fwts_framework *fw) /* restore the previous time. */ settime.Time = &oldtime; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_TIME, &settime); if (ioret == -1) { fwts_failed(fw, LOG_LEVEL_HIGH, "UEFIRuntimeSetTime", @@ -398,7 +401,7 @@ static int uefirttime_test_settime_invalid( struct efi_settime *settime) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; settime->status = &status; @@ -427,7 +430,7 @@ static int uefirttime_test_settime_invalid_time( struct efi_gettime gettime; struct efi_settime settime; EFI_TIME oldtime, newtime; - uint64_t status; + uint64_t status = ~0ULL; int ret, ioret; gettime.Time = &oldtime; @@ -467,6 +470,7 @@ static int uefirttime_test_settime_invalid_time( /* Restore original time */ settime.Time = &oldtime; + status = ~0ULL; settime.status = &status; ioret = ioctl(fd, EFI_RUNTIME_SET_TIME, &settime); if (ioret == -1) { @@ -609,7 +613,7 @@ static int uefirttime_test18(fwts_framework *fw) { long ioret; struct efi_getwakeuptime getwakeuptime; - uint64_t status; + uint64_t status = ~0ULL; uint8_t enabled, pending; EFI_TIME efi_time; @@ -644,7 +648,7 @@ static int uefirttime_test_getwaketime_invalid( struct efi_getwakeuptime *getwakeuptime) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; getwakeuptime->status = &status; ioret = ioctl(fd, EFI_RUNTIME_GET_WAKETIME, getwakeuptime); @@ -722,7 +726,7 @@ static int uefirttime_test23(fwts_framework *fw) { long ioret; struct efi_setwakeuptime setwakeuptime; - uint64_t status; + uint64_t status = ~0ULL; EFI_TIME oldtime; EFI_TIME newtime; @@ -749,6 +753,7 @@ static int uefirttime_test23(fwts_framework *fw) addonehour(&oldtime); setwakeuptime.Time = &oldtime; + status = ~0ULL; setwakeuptime.status = &status; setwakeuptime.Enabled = true; @@ -770,6 +775,7 @@ static int uefirttime_test23(fwts_framework *fw) getwakeuptime.Enabled = &enabled; getwakeuptime.Pending = &pending; getwakeuptime.Time = &newtime; + status = ~0ULL; getwakeuptime.status = &status; ioret = ioctl(fd, EFI_RUNTIME_GET_WAKETIME, &getwakeuptime); @@ -805,6 +811,7 @@ static int uefirttime_test23(fwts_framework *fw) } setwakeuptime.Enabled = false; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_WAKETIME, &setwakeuptime); if (ioret == -1) { @@ -815,6 +822,7 @@ static int uefirttime_test23(fwts_framework *fw) } sleep(1); + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_WAKETIME, &getwakeuptime); if (ioret == -1) { @@ -846,7 +854,7 @@ static int uefirttime_test_setwakeuptime_invalid( ) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; setwakeuptime->status = &status; @@ -890,7 +898,7 @@ static int uefirttime_test_setwakeuptime_invalid_time( struct efi_getwakeuptime getwakeuptime; struct efi_setwakeuptime setwakeuptime; EFI_TIME oldtime, newtime; - uint64_t status; + uint64_t status = ~0ULL; uint8_t pending, enabled; int ret, ioret; @@ -938,6 +946,7 @@ static int uefirttime_test_setwakeuptime_invalid_time( /* Restore original time */ setwakeuptime.Time = &oldtime; + status = ~0ULL; setwakeuptime.status = &status; setwakeuptime.Enabled = true; ioret = ioctl(fd, EFI_RUNTIME_SET_WAKETIME, &setwakeuptime); diff --git a/src/uefi/uefirtvariable/uefirtvariable.c b/src/uefi/uefirtvariable/uefirtvariable.c index b42240e..552790e 100644 --- a/src/uefi/uefirtvariable/uefirtvariable.c +++ b/src/uefi/uefirtvariable/uefirtvariable.c @@ -75,15 +75,19 @@ static void uefirtvariable_env_cleanup(void) setvariable.Attributes = 0; setvariable.DataSize = 0; setvariable.Data = &data; + status = ~0ULL; setvariable.status = &status; (void)ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); + status = ~0ULL; setvariable.VariableName = variablenametest2; (void)ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); + status = ~0ULL; setvariable.VariableName = variablenametest3; (void)ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); + status = ~0ULL; setvariable.VariableName = variablenametest; setvariable.VendorGuid = >estguid2; (void)ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -130,7 +134,7 @@ static int getvariable_test( struct efi_getvariable getvariable; struct efi_setvariable setvariable; - uint64_t status; + uint64_t status = ~0ULL; uint8_t testdata[MAX_DATA_LENGTH]; uint64_t dataindex; uint64_t getdatasize = sizeof(testdata); @@ -177,6 +181,7 @@ static int getvariable_test( getvariable.status = &status; for (i = 0; i < multitesttime; i++) { + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_VARIABLE, &getvariable); if (ioret == -1) { fwts_failed(fw, LOG_LEVEL_HIGH, @@ -221,6 +226,7 @@ static int getvariable_test( /* delete the variable */ setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -236,6 +242,7 @@ static int getvariable_test( err_restore_env: setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -288,7 +295,7 @@ static bool compare_name(const uint16_t *name1, const uint16_t *name2) static int getnextvariable_test1(fwts_framework *fw) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; struct efi_setvariable setvariable; @@ -351,6 +358,7 @@ static int getnextvariable_test1(fwts_framework *fw) variablename[0] = '\0'; while (true) { variablenamesize = maxvariablenamesize; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); if (ioret == -1) { @@ -416,6 +424,7 @@ static int getnextvariable_test1(fwts_framework *fw) /* delete the variable */ setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -431,6 +440,7 @@ static int getnextvariable_test1(fwts_framework *fw) err_restore_env: setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -497,6 +507,7 @@ static int getnextvariable_test2(fwts_framework *fw) while (true) { long ioret; + status = ~0ULL; variablenamesize = maxvariablenamesize; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -657,6 +668,7 @@ static int getnextvariable_test3(fwts_framework *fw) while (true) { struct efi_var_item *item; + status = ~0ULL; variablenamesize = maxvariablenamesize; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -758,7 +770,7 @@ err: static int getnextvariable_test4(fwts_framework *fw) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; uint64_t i; struct efi_getnextvariablename getnextvariablename; @@ -787,6 +799,7 @@ static int getnextvariable_test4(fwts_framework *fw) getnextvariablename.VariableName = variablename; getnextvariablename.VendorGuid = NULL; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -800,6 +813,7 @@ static int getnextvariable_test4(fwts_framework *fw) getnextvariablename.VendorGuid = &vendorguid; getnextvariablename.VariableNameSize = NULL; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -821,6 +835,7 @@ static int getnextvariable_test4(fwts_framework *fw) * string in VariableName */ variablename[0] = '\0'; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -867,7 +882,7 @@ static int setvariable_insertvariable( long ioret; struct efi_setvariable setvariable; - uint64_t status; + uint64_t status = ~0ULL; uint64_t dataindex; uint8_t data[datasize + 1]; @@ -936,7 +951,7 @@ static int setvariable_checkvariable( long ioret; struct efi_getvariable getvariable; - uint64_t status; + uint64_t status = ~0ULL; uint8_t testdata[datasize]; uint64_t dataindex; uint64_t getdatasize = sizeof(testdata); @@ -992,7 +1007,7 @@ static int setvariable_checkvariable_notfound( long ioret; struct efi_getvariable getvariable; - uint64_t status; + uint64_t status = ~0ULL; uint8_t testdata[MAX_DATA_LENGTH]; uint64_t getdatasize = sizeof(testdata); uint32_t attributestest; @@ -1028,7 +1043,7 @@ static int setvariable_invalidattr( { long ioret; struct efi_setvariable setvariable; - uint64_t status; + uint64_t status = ~0ULL; uint64_t dataindex; uint8_t data[datasize]; @@ -1374,7 +1389,7 @@ static int setvariable_test8(fwts_framework *fw) uint32_t attr = attributes | FWTS_UEFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS; uint64_t datasize = 1; uint8_t data = 1; - uint64_t status; + uint64_t status = ~0ULL; setvariable.VariableName = variablenametest; setvariable.VendorGuid = >estguid1; @@ -1411,6 +1426,7 @@ static int do_queryvariableinfo( queryvariableinfo.RemainingVariableStorageSize = remvarstoragesize; queryvariableinfo.MaximumVariableSize = maxvariablesize; queryvariableinfo.status = status; + *status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_QUERY_VARIABLEINFO, &queryvariableinfo); @@ -1425,7 +1441,7 @@ static int getnextvariable_multitest( const uint32_t multitesttime) { long ioret; - uint64_t status; + uint64_t status = ~0ULL; uint32_t i; struct efi_setvariable setvariable; @@ -1475,6 +1491,7 @@ static int getnextvariable_multitest( for (i = 0; i < multitesttime; i++) { variablename[0] = '\0'; variablenamesize = MAX_DATA_LENGTH; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); if (ioret == -1) { @@ -1487,6 +1504,7 @@ static int getnextvariable_multitest( }; setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -1501,6 +1519,7 @@ static int getnextvariable_multitest( err_restore_env: setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); @@ -1816,6 +1835,7 @@ static void getvariable_test_invalid( long ioret; fwts_log_info(fw, "Testing GetVariable with %s.", test); + *(getvariable->status) = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_VARIABLE, getvariable); if (ioret == -1) { @@ -1845,7 +1865,8 @@ static int uefirtvariable_test8(fwts_framework *fw) struct efi_getvariable getvariable; struct efi_setvariable setvariable; uint8_t data[16]; - uint64_t status, dataindex; + uint64_t status= ~0ULL; + uint64_t dataindex; uint64_t getdatasize = sizeof(data); uint32_t attr; int ioret; @@ -1920,6 +1941,7 @@ static int uefirtvariable_test8(fwts_framework *fw) /* delete the variable */ setvariable.DataSize = 0; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_SET_VARIABLE, &setvariable); if (ioret == -1) { fwts_failed(fw, LOG_LEVEL_HIGH, "UEFIRuntimeSetVariable", diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c index f8f1f1b..a54a636 100644 --- a/src/uefi/uefivarinfo/uefivarinfo.c +++ b/src/uefi/uefivarinfo/uefivarinfo.c @@ -99,6 +99,7 @@ static int do_checkvariables( variablename[0] = '\0'; while (true) { long ioret; + status = ~0ULL; variablenamesize = MAX_VARNAME_LENGTH; ioret = ioctl(fd, EFI_RUNTIME_GET_NEXTVARIABLENAME, &getnextvariablename); @@ -127,6 +128,7 @@ static int do_checkvariables( getvariable.VendorGuid = &vendorguid; getvariable.DataSize = &getdatasize; getvariable.Data = data; + status = ~0ULL; ioret = ioctl(fd, EFI_RUNTIME_GET_VARIABLE, &getvariable); if (ioret == -1) { @@ -151,6 +153,8 @@ static int do_checkvariables( } getvariable.Data = data; + status = ~0ULL; + ioret = ioctl(fd, EFI_RUNTIME_GET_VARIABLE, &getvariable); if (ioret == -1) { fwts_log_info(fw, "Failed to get variable with variable larger than maximum variable length."); @@ -185,6 +189,7 @@ static int do_queryvariableinfo( queryvariableinfo.MaximumVariableStorageSize = maxvarstoragesize; queryvariableinfo.RemainingVariableStorageSize = remvarstoragesize; queryvariableinfo.MaximumVariableSize = maxvariablesize; + *status = ~0ULL; queryvariableinfo.status = status; ioret = ioctl(fd, EFI_RUNTIME_QUERY_VARIABLEINFO, &queryvariableinfo); From patchwork Tue Aug 7 11:18:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Hu X-Patchwork-Id: 954476 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=fwts-devel-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41lBpp212Wz9s4s; Tue, 7 Aug 2018 21:18:39 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fn00a-0001Z1-OD; Tue, 07 Aug 2018 11:18:36 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1fn00Y-0001YF-VO for fwts-devel@lists.ubuntu.com; Tue, 07 Aug 2018 11:18:34 +0000 Received: from 112-104-30-181.adsl.dynamic.seed.net.tw ([112.104.30.181] helo=canonical.com) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fn00Y-0005jk-4N; Tue, 07 Aug 2018 11:18:34 +0000 From: Ivan Hu To: fwts-devel@lists.ubuntu.com Subject: [PATCH 2/2] uefi: uefivarinfo: add to UNSAFE category Date: Tue, 7 Aug 2018 19:18:25 +0800 Message-Id: <1533640705-7974-2-git-send-email-ivan.hu@canonical.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533640705-7974-1-git-send-email-ivan.hu@canonical.com> References: <1533640705-7974-1-git-send-email-ivan.hu@canonical.com> X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.20 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" uefivarinfo actually call to runtime services provided by UEFI firmware to get the variable infomation. It should be on UNSAFE category. Signed-off-by: Ivan Hu Acked-by: Colin Ian King Acked-by: Alex Hung --- src/uefi/uefivarinfo/uefivarinfo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/uefi/uefivarinfo/uefivarinfo.c b/src/uefi/uefivarinfo/uefivarinfo.c index a54a636..58b8f68 100644 --- a/src/uefi/uefivarinfo/uefivarinfo.c +++ b/src/uefi/uefivarinfo/uefivarinfo.c @@ -253,6 +253,6 @@ static fwts_framework_ops uefivarinfo_ops = { .minor_tests = uefivarinfo_tests }; -FWTS_REGISTER("uefivarinfo", &uefivarinfo_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_UTILS | FWTS_FLAG_ROOT_PRIV) +FWTS_REGISTER("uefivarinfo", &uefivarinfo_ops, FWTS_TEST_ANYTIME, FWTS_FLAG_UTILS | FWTS_FLAG_UNSAFE | FWTS_FLAG_ROOT_PRIV) #endif