pldmd: Migrate to pldm_pdr_add_check()
pldm_pdr_add() is deprecated in libpldm as it uses assert() to
communicate to the caller that an error occurred. pldm_pdr_add_check()
instead returns a value that indicates success or failure.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Icca92fd742f07fb935202a9d9e62f5648916b12b
diff --git a/libpldmresponder/pdr_utils.cpp b/libpldmresponder/pdr_utils.cpp
index dc6294e..7e5e491 100644
--- a/libpldmresponder/pdr_utils.cpp
+++ b/libpldmresponder/pdr_utils.cpp
@@ -23,8 +23,15 @@
RecordHandle Repo::addRecord(const PdrEntry& pdrEntry)
{
- return pldm_pdr_add(repo, pdrEntry.data, pdrEntry.size,
- pdrEntry.handle.recordHandle, false, TERMINUS_HANDLE);
+ uint32_t handle = pdrEntry.handle.recordHandle;
+ int rc = pldm_pdr_add_check(repo, pdrEntry.data, pdrEntry.size, false,
+ TERMINUS_HANDLE, &handle);
+ if (rc)
+ {
+ // pldm_pdr_add() assert()ed on failure to add PDR
+ throw std::runtime_error("Failed to add PDR");
+ }
+ return handle;
}
const pldm_pdr_record* Repo::getFirstRecord(PdrEntry& pdrEntry)