pldm: Migrate to pldm_bios_table_attr_value_entry_encode_integer_check()
pldm_bios_table_attr_value_entry_encode_integer() is deprecated in
libpldm as it uses assert() to sanitize its parameters. Use
pldm_bios_table_attr_value_entry_encode_integer_check() instead, which
returns a value indicating success or failure.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ic308d24a83fe3371a7ef074cb1d20092a06a1291
diff --git a/libpldmresponder/bios_table.cpp b/libpldmresponder/bios_table.cpp
index f4fcecf..3598277 100644
--- a/libpldmresponder/bios_table.cpp
+++ b/libpldmresponder/bios_table.cpp
@@ -329,8 +329,16 @@
auto tableSize = table.size();
table.resize(tableSize + entryLength);
- pldm_bios_table_attr_value_entry_encode_integer(
+ int rc = pldm_bios_table_attr_value_entry_encode_integer_check(
table.data() + tableSize, entryLength, attrHandle, attrType, value);
+ if (rc != PLDM_SUCCESS)
+ {
+ lg2::error(
+ "Failed to encode BIOS attribute table integer entry: {LIBPLDM_ERROR}",
+ "LIBPLDM_ERROR", rc);
+ throw std::runtime_error(
+ "Failed to encode BIOS attribute table integery entry");
+ }
return reinterpret_cast<pldm_bios_attr_val_table_entry*>(table.data() +
tableSize);
}
diff --git a/pldmtool/pldm_bios_cmd.cpp b/pldmtool/pldm_bios_cmd.cpp
index 3466882..e1acf84 100644
--- a/pldmtool/pldm_bios_cmd.cpp
+++ b/pldmtool/pldm_bios_cmd.cpp
@@ -902,9 +902,16 @@
entryLength =
pldm_bios_table_attr_value_entry_encode_integer_length();
attrValueEntry.resize(entryLength);
- pldm_bios_table_attr_value_entry_encode_integer(
+ int rc = pldm_bios_table_attr_value_entry_encode_integer_check(
attrValueEntry.data(), entryLength, attrEntry->attr_handle,
attrType, value);
+ if (rc != PLDM_SUCCESS)
+ {
+ std::cout
+ << "Failed to encode BIOS table attribute integer: "
+ << rc << std::endl;
+ return;
+ }
break;
}
}