mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
crypto: ccp - Initialize data during __sev_snp_init_locked()
Sashiko notes:
> is the stack variable data left uninitialized when taking the else branch?
> Since data.tio_en is later evaluated unconditionally, could stack garbage
> cause it to evaluate to true, leading to erroneous attempts to allocate
> pages and initialize SEV-TIO on unsupported hardware?
If the firmware is too old to support SEV_INIT_EX, data is left
uninitialized but used in the debug logging about whether TIO is enabled or
not.
Fixes: 4be423572d ("crypto/ccp: Implement SEV-TIO PCIe IDE (phase1)")
Reported-by: Sashiko
Assisted-by: Gemini:gemini-3.1-pro-preview
Link: https://sashiko.dev/#/patchset/20260324161301.1353976-1-tycho%40kernel.org
Signed-off-by: Tycho Andersen (AMD) <tycho@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
a8d5370eef
commit
fed613c123
|
|
@ -1356,7 +1356,7 @@ static int __sev_snp_init_locked(int *error, unsigned int max_snp_asid)
|
|||
{
|
||||
struct sev_data_range_list *snp_range_list __free(kfree) = NULL;
|
||||
struct psp_device *psp = psp_master;
|
||||
struct sev_data_snp_init_ex data;
|
||||
struct sev_data_snp_init_ex data = {};
|
||||
struct sev_device *sev;
|
||||
void *arg = &data;
|
||||
int cmd, rc = 0;
|
||||
|
|
@ -1420,8 +1420,6 @@ static int __sev_snp_init_locked(int *error, unsigned int max_snp_asid)
|
|||
*/
|
||||
snp_add_hv_fixed_pages(sev, snp_range_list);
|
||||
|
||||
memset(&data, 0, sizeof(data));
|
||||
|
||||
if (max_snp_asid) {
|
||||
data.ciphertext_hiding_en = 1;
|
||||
data.max_snp_asid = max_snp_asid;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user