From a0ad1a4333918c6df3aa8753598fdf8d663d5d23 Mon Sep 17 00:00:00 2001 From: Jianglei Nie Date: Fri, 7 Jan 2022 11:28:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dhm=5Fliteipc.c?= =?UTF-8?q?=E7=9A=84double=20unlock=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对g_cmsTask的访问应该加锁,但代码中LOS_MuxLock被误用为LOS_MuxUnLock,导致double unlock错误。 可以将865行的LOS_MuxUnlock改为LOS_MuxLock来解决这个问题。 Signed-off-by: Jianglei Nie --- kernel/extended/liteipc/hm_liteipc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/extended/liteipc/hm_liteipc.c b/kernel/extended/liteipc/hm_liteipc.c index 6cdc8584..bc3fb677 100644 --- a/kernel/extended/liteipc/hm_liteipc.c +++ b/kernel/extended/liteipc/hm_liteipc.c @@ -862,7 +862,7 @@ LITE_OS_SEC_TEXT STATIC UINT32 CheckMsgSize(IpcMsg *msg) totalSize += obj->content.ptr.buffSz; } } - (VOID)LOS_MuxUnlock(&g_serviceHandleMapMux); + (VOID)LOS_MuxLock(&g_serviceHandleMapMux, LOS_WAIT_FOREVER); if (totalSize > g_cmsTask.maxMsgSize) { (VOID)LOS_MuxUnlock(&g_serviceHandleMapMux); return -EINVAL;