mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
crypto: qat - zero the VF migration state buffer on save
The QAT VF migration state buffer is allocated with kmalloc(), while
qat_vf_save_state() exposes all state_size bytes to userspace. The state
manager writes only the serialized sections, leaving the unused tail
unchanged. The first save can therefore disclose stale heap contents,
and subsequent saves can disclose data left by an earlier migration.
Zero the whole buffer before writing the setup data. Once the setup data
is present, preserve it and zero the remaining state area before each
state save.
Fixes: f0bbfc391a ("crypto: qat - implement interface for live migration")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-fable-5
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
360094ceb2
commit
5d504e6551
|
|
@ -837,6 +837,9 @@ static int adf_gen4_vfmig_save_state(struct qat_mig_dev *mdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
memset(mdev->state + mdev->setup_size, 0,
|
||||
mdev->state_size - mdev->setup_size);
|
||||
|
||||
adf_mstate_mgr_init(vfmig->mstate_mgr, mdev->state + mdev->setup_size,
|
||||
mdev->state_size - mdev->setup_size);
|
||||
if (!adf_mstate_preamble_add(vfmig->mstate_mgr))
|
||||
|
|
@ -934,6 +937,8 @@ static int adf_gen4_vfmig_save_setup(struct qat_mig_dev *mdev)
|
|||
if (mdev->setup_size)
|
||||
return 0;
|
||||
|
||||
memset(mdev->state, 0, mdev->state_size);
|
||||
|
||||
adf_mstate_mgr_init(vfmig->mstate_mgr, mdev->state, mdev->state_size);
|
||||
if (!adf_mstate_preamble_add(vfmig->mstate_mgr))
|
||||
return -EINVAL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user