379e492a | 28-Aug-2024 |
Patrick Williams <patrick@stwcx.xyz> |
Adjust strncpy sizes
When building under bitbake with the latest openbmc, we get compile warnings such as these:
``` | ../git/sections/cper-section-nvidia.c: In function 'ir_section_nvidia_to_cper'
Adjust strncpy sizes
When building under bitbake with the latest openbmc, we get compile warnings such as these:
``` | ../git/sections/cper-section-nvidia.c: In function 'ir_section_nvidia_to_cper': | ../git/sections/cper-section-nvidia.c:67:9: error: '__builtin_strncpy' specified bound 16 equals destination size [-Werror=stringop-truncation] | 67 | strncpy(section_cper->Signature, ```
Using `strncpy` on its own is unsafe because a string too long will end up in the destination buffer without NUL termination. Adjust the strncpy to be one shorter than the buffer and force the trailing byte to be a NUL.
Repeat this pattern for all `strncpy` calls.
Change-Id: I45c630733f0138d2b089a60f698d75e1c09de9e2 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
683e0550 | 07-Mar-2024 |
Karthik Rajagopalan <krajagopalan@nvidia.com> |
Add support for NVIDIA CPERs
Support Nvidia CPER entries.
Change-Id: Iea9bde181ead55ad99cdb2a341501bf48e1d82a8 Signed-off-by: Ed Tanous <etanous@nvidia.com> |
a7d2cddd | 15-Jul-2024 |
Ed Tanous <etanous@nvidia.com> |
Move to embedded base64
Base64 encode/decode is a relatively simple algorithm, and currently libcper takes a dependency on libb64 for this. libb64 does not have methods for determining the encoded
Move to embedded base64
Base64 encode/decode is a relatively simple algorithm, and currently libcper takes a dependency on libb64 for this. libb64 does not have methods for determining the encoded size or decoded size, and rely on the user to provide the right buffer sizes, which libcper currently approximates as 2X the input size (which is incorrect).
This commit removes the libb64 dependency entirely, and inlines a libcper specific base64 encoder and decoder, using EDK2-allowed types.
The implementation itself is unique to libcper and makes the following design decisions. 1. Malloc is performed within the base64_<> functions. This reduces the number of malloc calls total, and removes the need for separately determining the output size. 2. Arguments are passed in by EDK2-types under the assumption that this will keep compatibility with EDK2 implementations. 3. Incremental parsing is not supported. CPER records are expected to be algorithmically small, and buffered such that the entire value fits in memory. This was already an assumption, but dropping the support for incremental encoding significantly reduces the amount of code to support it. It could be added back in the future if needed.
Change-Id: Idb010db105067ea317dbee05c2663511ab3c6611 Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
fedd457d | 12-Jul-2024 |
Ed Tanous <ed@tanous.net> |
Remove trailing whitespace
clang-format won't remove trailing whitespace if that's the only change. Fix them all.
Change-Id: Ic6e14af43cdd11905d3b58430d49b9ec1484f812 Signed-off-by: Ed Tanous <ed@t
Remove trailing whitespace
clang-format won't remove trailing whitespace if that's the only change. Fix them all.
Change-Id: Ic6e14af43cdd11905d3b58430d49b9ec1484f812 Signed-off-by: Ed Tanous <ed@tanous.net>
show more ...
|
6981acbf | 18-Jun-2024 |
Ed Tanous <etanous@nvidia.com> |
Fix warning
Clang warns that this line is missing a comma, which it is. Add the comma.
Change-Id: I448427ce97d4f2577690578ee37b1198681be7a6 Signed-off-by: Ed Tanous <etanous@nvidia.com> |
0b9c9402 | 22-May-2024 |
John Chung <john.chung@arm.com> |
Fix compiler error : strict-aliasing
Signed-off-by: John Chung <john.chung@arm.com> Change-Id: Iae4d7962a7ffca20633b3a49c8c2cbc763a5f22d |
f8fc7052 | 03-May-2024 |
John Chung <john.chung@arm.com> |
Formatting .c/.h files and fix memory leakage issues
Signed-off-by: John Chung <john.chung@arm.com> Change-Id: Id8328f412c2724992d80c0b3f895c8f85bc4ae68 |
580423fe | 24-Aug-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Shift section definitions into separate file, add testing.
Change-Id: Idb0b41d7fa2999485580fca770958a27c1086f65 |
5202bbb4 | 12-Aug-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Source json.h non-locally.
Change-Id: Ia42c41fde74596b394a1f7ae0021f1a5510991a8 |
efe17e2c | 08-Aug-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix several review comments. |
3592da71 | 21-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add human readable name to IA32x64 error info GUIDs. |
e407b4c8 | 21-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Partial reformat to kernel code style. |
0a4b3f2d | 21-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix bugs appearing from fuzzing. |
04750a9e | 20-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix errata in IA32x64 processing. |
3ab351fe | 20-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix errors in CPER write, remove PCIe AER support. |
01e3a44d | 20-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix IA32x64 pointer corruption, invalid generation on ARM. |
aacf0e26 | 20-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add fixes based on test fuzzing. |
4237584e | 19-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix various errata found from testing. |
d34f2b11 | 19-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add test suite, fix a mountain of small errors. |
de9707f9 | 19-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add generation for remaining, fix invalid fseek(). |
67cbed6b | 18-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Squash minor ARM CPER issues, add ARM generation. |
775467df | 18-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Fix generic section bitfield mistake. |
aec83900 | 18-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add conversion for CXL protocol/component. |
205dd1d7 | 14-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add all DMAR, CCIX, PCI, firmware conversions. |
3b7f45b5 | 14-Jul-2022 |
Lawrence Tang <lawrence.tang@arm.com> |
Add PCIe/memory CPER-JSON parsing. |