Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Change categories:
- Added
- Changed
- Deprecated
- Removed
- Fixed
- Security
[Unreleased]
Added
- bios_table: Introduce pldm_bios_table_append_pad_checksum_check()
Changed
- requester: Mark pldm_close() as LIBPLDM_ABI_TESTING
- requester: Expose pldm_close() in header
- bios_table: pldm_bios_table_string_entry_encode_check(): Handle overflow
- bios_table: pldm_bios_table_iter_create(): Return NULL on failed alloc
- bios_table: pldm_bios_table_iter_next(): Invalid entry halts iteration
Deprecated
pldm_bios_table_attr_entry_integer_encode()
Migrate to pldm_bios_table_attr_entry_integer_encode_check()
bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_enum()
Migrate to pldm_bios_table_attr_value_entry_encode_enum_check()
bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_string()
Migrate to pldm_bios_table_attr_value_entry_encode_string_check()
bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_integer()
Migrate to pldm_bios_table_attr_value_entry_encode_integer_check()
Removed
bios_table: Remove deprecated APIs sanitized by assert():
- pldm_bios_table_string_entry_encode()
- pldm_bios_table_string_entry_decode_string()
- pldm_bios_table_attr_entry_enum_encode()
- pldm_bios_table_attr_entry_enum_decode_pv_num()
- pldm_bios_table_attr_entry_enum_decode_def_num()
- pldm_bios_table_attr_entry_enum_decode_pv_hdls()
- pldm_bios_table_attr_entry_string_encode()
- pldm_bios_table_attr_entry_string_decode_def_string_length()
Fixed
- pdr: Return success for pldm_pdr_find_child_container_id_range_exclude() API
- pdr: Rework pldm_pdr_find_container_id_range_exclude() API
- transport: mctp-demux: Don't test socket for non-zero value
- requester: Return PLDM_REQUESTER_OPEN_FAIL from pldm_open() on error
[0.3.0] - 2023-06-23
Added
- Add encode/decode pldmMessagePollEvent data
- README: Add a section on working with libpldm
- pdr: Introduce remote_container_id and associated APIs
- pdr: Add APIs for creating and locating remote PDRs
- pdr: Add pldm_pdr_find_last_in_range()
- pdr: Add pldm_entity_association_pdr_add_from_node_with_record_handle()
- pdr: Add pldm_pdr_find_container_id_range_exclude()
Changed
include: Move installed transport.h under libpldm/
libpldm: Explicit deprecated, stable and testing ABI classes
meson: Reduce strength of oem-ibm requirements from enabled to allowed
The oem-ibm
feature is now enabled by the default meson configuration, for CI purposes. oem-ibm
is still disabled by default in the libpldm
bitbake recipe:
https://github.com/openbmc/openbmc/blob/master/meta-phosphor/recipes-phosphor/libpldm/libpldm_git.bb#L10
To disable oem-ibm
in your development builds, pass -Doem-ibm=disabled
when invoking meson setup
bios_table: Relax pldm_bios_table_string_entry_decode_string_check()
bios_table: Relax pldm_bios_table_attr_entry_enum_decode_pv_hdls_check()
Deprecated
bios_table: Deprecate APIs with arguments sanitized using assert()
C provides enough foot-guns without us encoding them into library APIs. Specifically, deprecate the following in favour of their *_check()
variants which ensure assertions won't fail or otherwise invoke UB:
- pldm_bios_table_string_entry_encode()
- pldm_bios_table_string_entry_decode_string()
- pldm_bios_table_attr_entry_enum_encode()
- pldm_bios_table_attr_entry_enum_decode_pv_num()
- pldm_bios_table_attr_entry_enum_decode_def_num()
- pldm_bios_table_attr_entry_enum_decode_pv_hdls()
- pldm_bios_table_attr_entry_string_encode()
- pldm_bios_table_attr_entry_string_decode_def_string_length()
Removed
- libpldm: Remove the requester-api option
Fixed
- requester: Make pldm_open() return existing fd
- transport: Prevent sticking in waiting for response
- transport: Match on response in pldm_transport_send_recv_msg()
- requester: Add check before accessing hdr in pldm_recv()
- bios_table: pldm_bios_table_attr_entry_string_info_check() NULL deref