From 8bae3c52f25d9c694942bc4dcdf98eca5192359e Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 8 Jan 2025 14:19:20 +0800 Subject: [PATCH] Fix chunk_seq_no wrap in chunk get. Fix #2875 Signed-off-by: Aaron Li --- .../libspdm_req_handle_error_response.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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));