Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek bbf57d4fb9 ShellPkg: UefiShellDebug1CommandsLib: fix hex string parsing in SETVAR
The ShellCommandRunSetVar() function calls the ShellIsHexOrDecimalNumber()
UefiShellLib function to determine if the data string in the SETVAR
command is a string of hexadecimal bytes.

However, ShellIsHexOrDecimalNumber() calls ShellConvertStringToUint64()
for validation. Therefore SETVAR rejects hex strings that cannot be
interpreted as UINT64 values due to range errors, despite the fact that
the hexadecimal data string of the SETVAR command is supposed to describe
an arbitrary array of bytes, rather than UINT64 values.

The internal library function InternalShellIsHexOrDecimalNumber() comes
close, as the first idea for the fix, however it is not quite right
either; it removes a leading minus sign, plus it allows 0x / 0X prefixes.
This would not be correct for the SETVAR command.

Instead, add a trivial utility function that is specific to the SETVAR
implementation. IsStringOfHexNibbles() accepts empty strings for
simplicity, but where we call it we have already ensured that the data
string is not empty (because that is handled earlier by the "delete
variable" branch of SETVAR). An even number of nibbles is also enforced
near the call site.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17128 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-07 14:18:40 +00:00
AppPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
ArmPkg ArmPkg/BaseMemoryLib(Sym|Vstm): Do not post increment returned pointer 2015-04-02 13:51:28 +00:00
ArmPlatformPkg ArmPlatformPkg/ArmJunoDxe: Fixed returned value 2015-04-01 14:50:04 +00:00
BaseTools NT32Pkg: Fix build errors from building secure boot with NT32 X64 2015-03-23 05:39:51 +00:00
BeagleBoardPkg ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg Pkg-Module: CorebootModulePkg 2015-03-31 01:06:23 +00:00
CorebootPayloadPkg Pkg-Module: CorebootPayloadPkg 2015-03-31 00:56:01 +00:00
CryptoPkg Upgrade to OpenSSL-0.9.8zf (released on 19-MAR-2015). 2015-03-25 08:13:32 +00:00
DuetPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkCompatibilityPkg EdkCompatibilityPkg: Fix 32bit build failure. 2015-03-19 02:09:49 +00:00
EdkShellBinPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EdkShellPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
EmbeddedPkg EmbeddedPkg/Lan9118Dxe: Fix risk of buffer overflow. 2015-04-02 13:50:18 +00:00
EmulatorPkg EmulatorPkg: Update web page and wiki urls 2015-02-05 18:25:01 +00:00
FatBinPkg FatBinPkg: Update ARM and AArch64 binaries 2015-02-27 17:27:42 +00:00
IntelFrameworkModulePkg IntelFrameworkModulePkg: Put report status code after event was signaled per PI spec. 2015-04-07 03:33:07 +00:00
IntelFrameworkPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
IntelFspPkg Add UINT16/32/64 array and DSC include support. 2015-03-04 01:03:20 +00:00
IntelFspWrapperPkg Fix comments format error.Fsp1.1 update. 2015-02-12 15:13:37 +00:00
MdeModulePkg MdeModulePkg: Put report status code after event was signaled per PI spec. 2015-04-07 03:31:17 +00:00
MdePkg Rollback r17113. 2015-04-03 05:23:13 +00:00
NetworkPkg PXE driver bug fix. 2015-03-26 04:49:30 +00:00
Nt32Pkg NT32Pkg: Fix build errors from building secure boot with NT32 X64 2015-03-23 05:39:51 +00:00
Omap35xxPkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
OptionRomPkg OptionRomPkg: Update UndiRuntimeDxe driver. 2015-03-11 05:34:18 +00:00
OvmfPkg OvmfPkg/XenBusDxe: Fix build issue with VS2010 2015-04-01 08:23:11 +00:00
PcAtChipsetPkg PcAtChipsetPkg: Update BaseAcpiTimerLib 2015-02-28 05:34:38 +00:00
PerformancePkg */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
SecurityPkg SecurityPkg Variable: Reuse scratch data area(at the end of volatile variable store) 2015-03-17 06:41:40 +00:00
ShellBinPkg ShellBinPkg: Arm/AArch64 Shell binary update. 2015-02-27 17:54:29 +00:00
ShellPkg ShellPkg: UefiShellDebug1CommandsLib: fix hex string parsing in SETVAR 2015-04-07 14:18:40 +00:00
SourceLevelDebugPkg Add missing parameter in function header. 2015-04-07 05:33:41 +00:00
StdLib */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
StdLibPrivateInternalFiles */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
UefiCpuPkg UefiCpuPkg/MpSerivce: add volatile qualifiers 2015-03-09 06:45:26 +00:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg Removed MBI Device from ACPI DSDT Table. 2015-04-02 02:01:26 +00:00
Vlv2TbltDevicePkg Add patch-able PCD to support binary modification of MRC module. 2015-03-10 06:50:16 +00:00
.gitignore EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
BuildNotes2.txt Update to new SVN URL in readme.txt 2013-06-08 05:26:39 +00:00
Edk2Setup.bat Updated version, missed the last two commits and to add the SVN Revision property (last part of the version value). 2014-08-22 16:08:47 +00:00
Maintainers.txt Adding Prince Agyeman and Maurice Ma as CorebootModulePkg and CorebootPayloadPkg maintainers 2015-04-01 15:43:45 +00:00
edksetup.bat Update edksetup.bat to support Microsoft Visual Studio 2013 when building the Nt32Pkg emulation platform (enabled using the --nt32 flag). 2014-10-30 17:09:25 +00:00
edksetup.sh edksetup.sh: Ensure that WORKSPACE points to the top of an edk2 checkout 2014-07-28 17:37:40 +00:00