platform: pldm_msgbuf for decode_platform_event_message_req()
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ice4b36066e01bb477583541b791da45d2f7c6c08
diff --git a/src/platform.c b/src/platform.c
index 6b967d8..f6398fe 100644
--- a/src/platform.c
+++ b/src/platform.c
@@ -861,25 +861,28 @@
uint8_t *event_class,
size_t *event_data_offset)
{
+ struct pldm_msgbuf _buf;
+ struct pldm_msgbuf *buf = &_buf;
+ int rc;
if (msg == NULL || format_version == NULL || tid == NULL ||
event_class == NULL || event_data_offset == NULL) {
return PLDM_ERROR_INVALID_DATA;
}
- if (payload_length <= PLDM_PLATFORM_EVENT_MESSAGE_MIN_REQ_BYTES) {
- return PLDM_ERROR_INVALID_LENGTH;
+ rc = pldm_msgbuf_init(buf, PLDM_PLATFORM_EVENT_MESSAGE_MIN_REQ_BYTES,
+ msg->payload, payload_length);
+ if (rc) {
+ return rc;
}
- struct pldm_platform_event_message_req *response =
- (struct pldm_platform_event_message_req *)msg->payload;
- *format_version = response->format_version;
- *tid = response->tid;
- *event_class = response->event_class;
+ pldm_msgbuf_extract(buf, format_version);
+ pldm_msgbuf_extract(buf, tid);
+ pldm_msgbuf_extract(buf, event_class);
*event_data_offset =
sizeof(*format_version) + sizeof(*tid) + sizeof(*event_class);
- return PLDM_SUCCESS;
+ return pldm_msgbuf_destroy(buf);
}
int encode_platform_event_message_resp(uint8_t instance_id,