diff --git a/kernel/extended/liteipc/hm_liteipc.c b/kernel/extended/liteipc/hm_liteipc.c index ce05003bf37fde031d79939587bdfc6003083195..9c147230b04e17dc98ef628f63283ed09351f562 100644 --- a/kernel/extended/liteipc/hm_liteipc.c +++ b/kernel/extended/liteipc/hm_liteipc.c @@ -213,7 +213,7 @@ LITE_OS_SEC_TEXT STATIC int LiteIpcMmap(struct file *filep, LosVmMapRegion *regi } if (ipcInfo->pool.uvaddr != NULL) { regionTemp = LOS_RegionFind(pcb->vmSpace, (VADDR_T)(UINTPTR)ipcInfo->pool.uvaddr); - if (regionTemp != NULL) { + if ((regionTemp != NULL) && (regionTemp != region)) { (VOID)LOS_RegionFree(pcb->vmSpace, regionTemp); } }