On 4/27/23 12:10, Sathyanarayanan Kuppuswamy wrote:
Shouldn't req be zeroed before populating reportdata? We wouldn't want uninitialized memory to leave the guest. I know this is just a test,
There are only two members in struct tdx_report_req (reportdata and tdreport). The reportdata has already been updated here, and the tdreport will be updated by the kernel on output. Since TDX_CMD_GET_REPORT0 IOCTL handler uses an intermediate kernel buffer to the TDREPORT and copies the generated report back to this user buffer, this uninitialized tdreport data never leaves the guest.
Is that really even relevant?
I mean, we could implement the whole thing with get_user_pages() and then just pass the physical address of the reportdata and tdreport down to the TDX module.
It doesn't matter either way. The data is going from guest userspace to the guest kernel to the TDX module, all of which are trusted.
It's a selftest. I'd just leave it alone.