Make the HwErrRecVariableName as valid the string. Ensure the HwErrRecVariable could be deleted before the test exit.
Cc: Supreeth Venkatesh <[email protected]> Cc: Jiaxin Wu <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Eric Jin <[email protected]> --- .../BlackBoxTest/VariableServicesBBTestFunction.c | 12 +++++++----- .../BlackBoxTest/VariableServicesBBTestMain.h | 10 +++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestFunction.c index d1064ce..df1bbe7 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestFunction.c +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestFunction.c @@ -1,7 +1,7 @@ /** @file Copyright 2006 - 2012 Unified EFI, Inc.<BR> - Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -2855,7 +2855,7 @@ HardwareErrorRecordFuncTest ( UINT64 RemainingVariableStorageSize; UINT64 MaximumVariableSize; - CHAR16 HwErrRecVariableName[13]; + CHAR16 HwErrRecVariableName[HwErrRecVariableNameLength]; CHAR16 HwErrRecVariable[] = L"This is a HwErrRec variable!"; CHAR16 GetVariableName[MAX_BUFFER_SIZE]; @@ -3015,6 +3015,7 @@ HardwareErrorRecordFuncTest ( HwErrRecVariableName[0] = L'\0'; SctStrCat ( HwErrRecVariableName, L"HwErrRec" ); Myitox( MaxNum, HwErrRecVariableName+8 ); + HwErrRecVariableName[HwErrRecVariableNameLength-1] = L'\0'; // // Set the new HwErrRec variable to the global variable @@ -3036,8 +3037,8 @@ HardwareErrorRecordFuncTest ( // Write reset record // RecoveryData[0] = 2; - SctStrnCpy ( (CHAR16*)(&RecoveryData[2]), HwErrRecVariableName, 12 ); - RecoveryLib->WriteResetRecord( RecoveryLib, 13*sizeof(CHAR16)+2, RecoveryData ); + SctStrnCpy ( (CHAR16*)(&RecoveryData[2]), HwErrRecVariableName, HwErrRecVariableNameLength-1 ); + RecoveryLib->WriteResetRecord( RecoveryLib, HwErrRecVariableNameLength*sizeof(CHAR16)+2, RecoveryData ); // // Prompt the user about the cold reset and reset the system @@ -3052,7 +3053,8 @@ HardwareErrorRecordFuncTest ( // step2: DataSize = 255; - SctStrnCpy ( HwErrRecVariableName, (CHAR16*)(RecoveryData+2), 12 ); + HwErrRecVariableName[HwErrRecVariableNameLength-1] = L'\0'; + SctStrnCpy ( HwErrRecVariableName, (CHAR16*)(RecoveryData+2), HwErrRecVariableNameLength-1 ); Status = RT->GetVariable ( HwErrRecVariableName, &gHwErrRecGuid, diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestMain.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestMain.h index 051ae6f..b645b55 100644 --- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestMain.h +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/VariableServicesBBTestMain.h @@ -1,7 +1,7 @@ /** @file Copyright 2006 - 2016 Unified EFI, Inc.<BR> - Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -125,6 +125,14 @@ Abstract: #endif // +// The Variable Name of Hardware Error Record Variables +// defined in the UEFI Spec is HwErrRec####. For example, +// HwErrRec0001, HwErrRec0002, HwErrRecF31A, etc. +// Consider the tail of string, the length is 13. +// +#define HwErrRecVariableNameLength 13 + +// // Global Variables // -- 2.9.0.windows.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

