transport: mctp-demux: Refactor buffer handling in recv callback

Assigning to *pldm_resp_msg added to the cleanup required prior to
returning. Instead, only assign to *pldm_resp_msg once it's no-longer
possible to fail.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I584b2307f71acde4c3da38336fb70c975e22a4d8
diff --git a/src/transport/mctp-demux.c b/src/transport/mctp-demux.c
index 4769827..91946d2 100644
--- a/src/transport/mctp-demux.c
+++ b/src/transport/mctp-demux.c
@@ -135,26 +135,21 @@
 	size_t pldm_len = length - mctp_prefix_len;
 	iov[0].iov_len = mctp_prefix_len;
 	iov[0].iov_base = mctp_prefix;
-	*pldm_resp_msg = buf;
-	if (*pldm_resp_msg == NULL) {
-		return PLDM_REQUESTER_RECV_FAIL;
-	}
 	iov[1].iov_len = pldm_len;
-	iov[1].iov_base = *pldm_resp_msg;
+	iov[1].iov_base = buf;
 	struct msghdr msg = { 0 };
 	msg.msg_iov = iov;
 	msg.msg_iovlen = sizeof(iov) / sizeof(iov[0]);
 	ssize_t bytes = recvmsg(demux->socket, &msg, 0);
 	if (length != bytes) {
-		free(*pldm_resp_msg);
-		*pldm_resp_msg = NULL;
+		free(buf);
 		return PLDM_REQUESTER_INVALID_RECV_LEN;
 	}
 	if ((mctp_prefix[0] != eid) || (mctp_prefix[1] != mctp_msg_type)) {
-		free(*pldm_resp_msg);
-		*pldm_resp_msg = NULL;
+		free(buf);
 		return PLDM_REQUESTER_NOT_PLDM_MSG;
 	}
+	*pldm_resp_msg = buf;
 	*resp_msg_len = pldm_len;
 	return PLDM_REQUESTER_SUCCESS;
 }