From 58b5a0412eee1be39bae60e54256ed5d38b31649 Mon Sep 17 00:00:00 2001 From: Ville Juven Date: Tue, 17 Jan 2023 16:00:51 +0200 Subject: [PATCH] riscv/addrenv_shm: Add missing sanity check to up_shmdt() A missing sanity check, make sure the last level page table actually exists before trying to clear entries from it. --- arch/risc-v/src/common/riscv_addrenv_shm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/risc-v/src/common/riscv_addrenv_shm.c b/arch/risc-v/src/common/riscv_addrenv_shm.c index 3d81d5ad189..170e88b3eaa 100644 --- a/arch/risc-v/src/common/riscv_addrenv_shm.c +++ b/arch/risc-v/src/common/riscv_addrenv_shm.c @@ -159,6 +159,10 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages) paddr = mmu_pte_to_paddr(mmu_ln_getentry(ptlevel, ptprev, vaddr)); ptlast = riscv_pgvaddr(paddr); + if (!ptlast) + { + return -EFAULT; + } /* Then wipe the reference */