diff --git a/library/spdm_requester_lib/libspdm_req_handle_error_response.c b/library/spdm_requester_lib/libspdm_req_handle_error_response.c index 262b844a079..6baec3c5f90 100644 --- a/library/spdm_requester_lib/libspdm_req_handle_error_response.c +++ b/library/spdm_requester_lib/libspdm_req_handle_error_response.c @@ -1,6 +1,6 @@ /** * Copyright Notice: - * Copyright 2021-2024 DMTF. All rights reserved. + * Copyright 2021-2025 DMTF. All rights reserved. * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md **/ @@ -280,6 +280,12 @@ libspdm_return_t libspdm_handle_error_large_response( spdm_request->chunk_seq_no = chunk_seq_no; spdm_request_size = sizeof(spdm_chunk_get_request_t); + if (chunk_seq_no == 0 && large_response_size_so_far != 0) { + /* chunk_seq_no wrapped */ + status = LIBSPDM_STATUS_INVALID_MSG_FIELD; + break; + } + LIBSPDM_DEBUG((LIBSPDM_DEBUG_INFO, "CHUNK_GET Handle %d SeqNo %d\n", chunk_handle, chunk_seq_no));