Dmem.c: In function 'GetImageExecutionInfo':
Dmem.c:241:10: error: 'Status' may be used uninitialized
in this function [-Werror=maybe-uninitialized]
return Status;
^~~~~~
Dmem.c:284:35: note: 'Status' was declared here
EFI_STATUS Status;
^~~~~~
Dmem.c: In function 'ShellCommandRunDmem':
Dmem.c:586:27: error: 'ConformanceProfileTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayConformanceProfiles (ConformanceProfileTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dmem.c:582:27: error: 'ImageExecutionTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayImageExecutionEntries (ImageExecutionTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dmem.c:578:27: error: 'RtPropertiesTableAddress' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
ShellStatus = DisplayRtProperties (RtPropertiesTableAddress);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Signed-off-by: Mike Maslenkin <mike.maslenkin@gmail.com>
This checks the number of PCC descriptor entries provided match the
count set in the table, and if they don't indicate a warning.
Signed-off-by: Carsten Haitzler <carsten.haitzler@foss.arm.com>
InternalShellIsHexOrDecimalNumber() would fail to interpret e.g. "0 " or
"00 " as valid numeric strings. After skipping the "0" digits as
leading zeroes, it would check if the next character is a valid hex or
decimal digit, which would then fail on the terminating character.
Therefore return success if "leading" zeroes have been consumed and
there are no more characters.
InternalShellStrHexToUint64() would fail to interpret e.g. "0 " or "00 "
as valid numeric strings. After skipping the "0" digits as leading
zeroes, it would find itself surprised by the following space.
Restrict the "bad space" check to the case where it had just consumed
the "x" or "X" marker. Otherwise the space is fine (depending on
StopAtSpace either end of number or interspersed space) since there
were only zeroes so far.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3080
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
The ShellConvertStringToUint64() function documentation says:
"Upon a successful return the value of the conversion."
So do not write any value if the conversion failed.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
StrSize() uses StrLen() which counts until the terminating NULL
character.
For checking for an empty string it is more efficient to directly check
for the NULL terminator instead of calling StrSize().
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
StrSize() will never return zero since it counts the terminating NULL
character.
An empty string will have the storage size of the terminator.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
If InternalShellStrHexToUint64() is passed a string that starts with 'X'
or 'x' it would try to read the byte before the start of the string
buffer.
Instead check if leading zeroes have been consumed.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Following the UEFI Shell Specification revision 2.2,
add helper for the '-fwui' option of the reset command.
Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
Includes changes across the module for the following CodeQL rules:
- cpp/comparison-with-wider-type
- cpp/overflow-buffer
- cpp/redundant-null-check-param
- cpp/uselesstest
Co-authored-by: Taylor Beebe <taylor.d.beebe@gmail.com>
Signed-off-by: Oliver Smith-Denny <osde@linux.microsoft.com>
The patch will correct wrong length offset usage in SMBIOS Type4.
For SMBIOS Ver3.6, length should be larger than 0x30.
For SMBIOS Ver3.8, length should be larger than 0x32.
Signed-off-by: Jason Zhao <jason.zhao@intel.com>
When modifying the Optional Data of a boot option with bcfg boot -opt
the result was corrupted data, for instance a concatenation of old data,
heap contents, and new data. This was due to a erronous calculation of
the original optional data length.
In addition to fixing the calculation, add explaining comments and
introduce a helper variable, to not abuse other variables and confuse
readers (including the author).
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
When a quotation mark was found, the remaining line would be shifted
in-place to get rid of it. However, the "walker" index would still be
increased and therefore the first character of the shifted part would be
skipped. This means a second quotation mark would not be deleted.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4850
When running 'reset -s' no linefeed is printed. This results in the Linux
command line prompt not being printed at the start of a new line:
Shell> reset -s
Reset with <null string> (0 bytes)user@workstation:/tmp$
Add the missing linefeed.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>