11/**
22 * Copyright Notice:
3- * Copyright 2021-2025 DMTF. All rights reserved.
3+ * Copyright 2021-2026 DMTF. All rights reserved.
44 * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
55 **/
66
@@ -290,6 +290,18 @@ libspdm_return_t libspdm_get_response_encapsulated_request(
290290 spdm_context , SPDM_ERROR_CODE_UNSUPPORTED_REQUEST ,
291291 SPDM_GET_ENCAPSULATED_REQUEST , response_size , response );
292292 }
293+
294+ if (request_size < sizeof (spdm_get_encapsulated_request_request_t )) {
295+ return libspdm_generate_error_response (spdm_context ,
296+ SPDM_ERROR_CODE_INVALID_REQUEST , 0 ,
297+ response_size , response );
298+ }
299+ if (spdm_request -> header .spdm_version != libspdm_get_connection_version (spdm_context )) {
300+ return libspdm_generate_error_response (spdm_context ,
301+ SPDM_ERROR_CODE_VERSION_MISMATCH , 0 ,
302+ response_size , response );
303+ }
304+
293305 if (spdm_context -> response_state != LIBSPDM_RESPONSE_STATE_PROCESSING_ENCAP ) {
294306 if (spdm_context -> response_state == LIBSPDM_RESPONSE_STATE_NORMAL ) {
295307 if (libspdm_get_connection_version (spdm_context ) >= SPDM_MESSAGE_VERSION_13 ) {
@@ -327,12 +339,6 @@ libspdm_return_t libspdm_get_response_encapsulated_request(
327339 }
328340 }
329341
330- if (request_size < sizeof (spdm_get_encapsulated_request_request_t )) {
331- return libspdm_generate_error_response (spdm_context ,
332- SPDM_ERROR_CODE_INVALID_REQUEST , 0 ,
333- response_size , response );
334- }
335-
336342 libspdm_reset_message_buffer_via_request_code (spdm_context , NULL ,
337343 spdm_request -> header .request_response_code );
338344
@@ -394,6 +400,7 @@ libspdm_return_t libspdm_get_response_encapsulated_response_ack(
394400 spdm_context , SPDM_ERROR_CODE_UNSUPPORTED_REQUEST ,
395401 SPDM_DELIVER_ENCAPSULATED_RESPONSE , response_size , response );
396402 }
403+
397404 if (spdm_context -> response_state != LIBSPDM_RESPONSE_STATE_PROCESSING_ENCAP ) {
398405 if (spdm_context -> response_state == LIBSPDM_RESPONSE_STATE_NORMAL ) {
399406 return libspdm_generate_error_response (
@@ -411,6 +418,11 @@ libspdm_return_t libspdm_get_response_encapsulated_response_ack(
411418 SPDM_ERROR_CODE_INVALID_REQUEST , 0 ,
412419 response_size , response );
413420 }
421+ if (spdm_request -> header .spdm_version != libspdm_get_connection_version (spdm_context )) {
422+ return libspdm_generate_error_response (spdm_context ,
423+ SPDM_ERROR_CODE_VERSION_MISMATCH , 0 ,
424+ response_size , response );
425+ }
414426
415427 spdm_request_size = request_size ;
416428
0 commit comments