Skip to content

Commit 44e3fa0

Browse files
authored
Update parameters in tdx-attest Rust wrapper (#406)
Use all zero report data when Option<&tdx_report_data_t> is None to fix program panic. Signed-off-by: Li, Xun <xun.li@intel.com>
1 parent d5cfa0f commit 44e3fa0

File tree

1 file changed

+6
-2
lines changed
  • QuoteGeneration/quote_wrapper/tdx-attest-rs/src

1 file changed

+6
-2
lines changed

QuoteGeneration/quote_wrapper/tdx-attest-rs/src/lib.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ pub fn tdx_att_get_quote(
9292
) -> (tdx_attest_error_t, Option<Vec<u8>>) {
9393
let p_tdx_report_data = match tdx_report_data {
9494
Some(p) => p as *const tdx_report_data_t,
95-
None => std::ptr::null_mut(),
95+
None => &tdx_report_data_t { d: [0; 64usize] },
9696
};
9797
let (p_att_key_id_list, att_key_id_list_size) = match att_key_id_list {
9898
Some(p) => (p.as_ptr() as *const tdx_uuid_t, p.len() as u32),
@@ -165,7 +165,7 @@ pub fn tdx_att_get_report(
165165
) -> tdx_attest_error_t {
166166
let p_tdx_report_data = match tdx_report_data {
167167
Some(p) => p as *const tdx_report_data_t,
168-
None => std::ptr::null_mut(),
168+
None => &tdx_report_data_t { d: [0; 64usize] },
169169
};
170170
unsafe { tdx_attest_sys::tdx_att_get_report(p_tdx_report_data, tdx_report) }
171171
}
@@ -264,6 +264,8 @@ mod tests {
264264
let mut tdx_report = tdx_report_t { d: [0; 1024usize] };
265265
let result = tdx_att_get_report(Some(&tdx_report_data), &mut tdx_report);
266266
assert_eq!(result, tdx_attest_error_t::TDX_ATTEST_ERROR_DEVICE_FAILURE);
267+
let result = tdx_att_get_report(None, &mut tdx_report);
268+
assert_eq!(result, tdx_attest_error_t::TDX_ATTEST_ERROR_DEVICE_FAILURE);
267269
}
268270

269271
#[test]
@@ -277,6 +279,8 @@ mod tests {
277279
q => println!("quote {:?}", q),
278280
}
279281
assert_eq!(result, tdx_attest_error_t::TDX_ATTEST_ERROR_DEVICE_FAILURE);
282+
let (result, _quote) = tdx_att_get_quote(None, None, None, 0);
283+
assert_eq!(result, tdx_attest_error_t::TDX_ATTEST_ERROR_DEVICE_FAILURE);
280284
}
281285

282286
#[test]

0 commit comments

Comments
 (0)