diff --git a/kernel/base/vm/shm.c b/kernel/base/vm/shm.c index 8ae1f824dd452b33e5e00b57590dd71277b4fcbc..29522bce38d9398b83c8aae838fe85badd6b48ee 100644 --- a/kernel/base/vm/shm.c +++ b/kernel/base/vm/shm.c @@ -761,7 +761,7 @@ INT32 ShmDt(const VOID *shmaddr) (VOID)LOS_MuxAcquire(&space->regionMux); region = LOS_RegionFind(space, (VADDR_T)(UINTPTR)shmaddr); - if (region == NULL) { + if ((region == NULL) || !OsIsShmRegion(region)) { ret = EINVAL; goto ERROR_WITH_LOCK; }