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,