diff --git a/kernel/base/vm/shm.c b/kernel/base/vm/shm.c index 637c61674feb949f8875abd25ffa7f4449d54ee6..1a912da0a953f6174ceea40de8d4574ca76ebb6c 100644 --- a/kernel/base/vm/shm.c +++ b/kernel/base/vm/shm.c @@ -758,7 +758,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; }