From 243306e9f2b8d5bec42f23c9c95360b6eb5bfeee Mon Sep 17 00:00:00 2001 From: "Gudaram, Meghana" Date: Wed, 8 Apr 2026 12:36:57 -0700 Subject: [PATCH] Fix to GetMigTDData optional reportdata size --- src/migtd/src/migration/session.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/migtd/src/migration/session.rs b/src/migtd/src/migration/session.rs index f430ab5a..537e01df 100644 --- a/src/migtd/src/migration/session.rs +++ b/src/migtd/src/migration/session.rs @@ -370,9 +370,9 @@ pub async fn wait_for_request() -> Result { if data_length >= size_of::() as u32 { let slice = &data_buffer[reqbufferhdrlen..reqbufferhdrlen + data_length as usize]; let mig_request_id = u64::from_le_bytes(slice[0..8].try_into().unwrap()); - log::error!(migration_request_id = mig_request_id; "wait_for_request: StartMigration operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); + log::error!(migration_request_id = mig_request_id; "wait_for_request: GetReportData operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); } else { - log::error!("wait_for_request: StartMigration operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); + log::error!("wait_for_request: GetReportData operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); } return Poll::Pending; } @@ -418,14 +418,15 @@ pub async fn wait_for_request() -> Result { { let mut reportdata: [u8; 64] = [0; 64]; let mut mig_request_id: u64 = 0; - if data_length != size_of::() as u32 + // data length should MigRequestID (+ optional REPORTDATA) + if data_length != size_of::() as u32 && data_length != size_of_val(&mig_request_id) as u32 { if data_length >= size_of::() as u32 { let slice = &data_buffer[reqbufferhdrlen..reqbufferhdrlen + data_length as usize]; let mig_request_id = u64::from_le_bytes(slice[0..8].try_into().unwrap()); - log::error!(migration_request_id = mig_request_id; "wait_for_request: StartMigration operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); + log::error!(migration_request_id = mig_request_id; "wait_for_request: GetMigtdData operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); } else { - log::error!("wait_for_request: StartMigration operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); + log::error!("wait_for_request: GetMigtdData operation incorrect data length - expected {} actual {}\n", size_of::(), data_length); } return Poll::Pending; }