diff --git a/kernel/extended/liteipc/hm_liteipc.c b/kernel/extended/liteipc/hm_liteipc.c index 2f2fbf71254817746a518297083828ada6de5317..8e4cb0cd3c66cf086e9c46ad6f2dfcc1d88e906f 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); } }