Re: [PATCH v1 10/11] KVM: s390: Fix potential tiny kernel stack leak
Christian Borntraeger <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390,org.kernel.vger.kvm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Am 11.08.26 um 17:56 schrieb Claudio Imbrenda:
> In some circumstances, one bit of kernel stack could have been leaked
> from dat_cond_set_storage_key().
>
> Fix by clearing prev before use.
>
> Fixes: 8e03e8316eb2 ("KVM: s390: KVM page table management functions: storage keys")
> Signed-off-by: Claudio Imbrenda <[email protected]>
> ---
> arch/s390/kvm/dat.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/s390/kvm/dat.c b/arch/s390/kvm/dat.c
> index 47ff8af1b22f..e2a74eb4d631 100644
> --- a/arch/s390/kvm/dat.c
> +++ b/arch/s390/kvm/dat.c
> @@ -740,6 +740,7 @@ int dat_cond_set_storage_key(struct kvm_s390_mmu_cache *mmc, union asce asce, gf
> pgste.fp = skey.fp;
> pgste.gc = skey.c;
> pgste.gr = skey.r;
> + prev.skey = 0;
>
> if (!ptep->h.i) {
> rc = page_cond_set_storage_key(pte_origin(*ptep), skey, &prev, nq, mr, mc);
in the declaration
- union skey prev;
+ union skey prev = {};
or
prev.zero=0 in the else
would have worked as well, but this way also works.
Reviewed-by: Christian Borntraeger <[email protected]>