From 4a36e89dabdcddb814ec28d14f5e53bd218f918c Mon Sep 17 00:00:00 2001 From: m-milinkovic <48519510+m-milinkovic@users.noreply.github.com> Date: Thu, 18 Apr 2024 17:47:05 +0200 Subject: [PATCH] Fix vendor request size The pointer of Vendor Defined Request is moved, then the request size should be adjusted accordingly. --- library/spdm_responder_lib/libspdm_rsp_vendor_response.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/spdm_responder_lib/libspdm_rsp_vendor_response.c b/library/spdm_responder_lib/libspdm_rsp_vendor_response.c index a4678e95fae..ac821f11d36 100644 --- a/library/spdm_responder_lib/libspdm_rsp_vendor_response.c +++ b/library/spdm_responder_lib/libspdm_rsp_vendor_response.c @@ -46,6 +46,7 @@ libspdm_return_t libspdm_get_vendor_defined_response(libspdm_context_t *spdm_con const uint8_t *req_vendor_id; const uint8_t *req_data; uint16_t resp_size = 0; + uint16_t req_size = 0; /* -=[Check Parameters Phase]=- */ if (request == NULL || @@ -168,7 +169,11 @@ libspdm_return_t libspdm_get_vendor_defined_response(libspdm_context_t *spdm_con sizeof(spdm_vendor_defined_response_msg_t); req_data = ((const uint8_t *)request) + sizeof(spdm_vendor_defined_request_msg_t) + - ((const spdm_vendor_defined_response_msg_t*)request)->len + + ((const spdm_vendor_defined_request_msg_t*)request)->len + + sizeof(uint16_t); + req_size = (uint16_t)request_size - + sizeof(spdm_vendor_defined_request_msg_t) - + ((const spdm_vendor_defined_request_msg_t*)request)->len - sizeof(uint16_t); status = spdm_context->vendor_response_get_id( @@ -185,7 +190,7 @@ libspdm_return_t libspdm_get_vendor_defined_response(libspdm_context_t *spdm_con status = spdm_context->vendor_response_callback(spdm_context, spdm_request->standard_id, spdm_request->len, - req_vendor_id, (uint16_t)request_size, req_data, + req_vendor_id, req_size, req_data, &resp_size, resp_data );