From 141ad15cf0b51a452ab80555893a717a1f62242d Mon Sep 17 00:00:00 2001 From: hw_llm Date: Wed, 15 Jan 2025 09:31:30 +0800 Subject: [PATCH] =?UTF-8?q?Description:=20GetGroups=20=E6=89=A9=E5=A4=A7SC?= =?UTF-8?q?HEDULER=5FLOCK=20=E4=BF=9D=E6=8A=A4=E8=8C=83=E5=9B=B4=20IssueNo?= =?UTF-8?q?:=20https://gitee.com/openharmony/kernel=5Fliteos=5Fa/issues/IB?= =?UTF-8?q?HTM5=3Ffrom=3Dproject-issue=20Feature=20Or=20Bugfix:=20Bugfix?= =?UTF-8?q?=20Binary=20Source:=20No=20Signed-off-by:=20hw=5Fllm=20=20=EF=BC=88cherry=20picked=20commit=20from=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syscall/process_syscall.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/syscall/process_syscall.c b/syscall/process_syscall.c index 48c5f817..59d914f7 100644 --- a/syscall/process_syscall.c +++ b/syscall/process_syscall.c @@ -1032,23 +1032,25 @@ static int GetGroups(int size, int list[]) SCHEDULER_LOCK(intSave); groupCount = OsCurrUserGet()->groupNumber; - SCHEDULER_UNLOCK(intSave); listSize = groupCount * sizeof(int); if (size == 0) { + SCHEDULER_UNLOCK(intSave); return groupCount; } else if (list == NULL) { + SCHEDULER_UNLOCK(intSave); return -EFAULT; } else if (size < groupCount) { + SCHEDULER_UNLOCK(intSave); return -EINVAL; } safeList = LOS_MemAlloc(m_aucSysMem1, listSize); if (safeList == NULL) { + SCHEDULER_UNLOCK(intSave); return -ENOMEM; } - SCHEDULER_LOCK(intSave); (void)memcpy_s(safeList, listSize, &OsCurrProcessGet()->user->groups[0], listSize); SCHEDULER_UNLOCK(intSave); -- Gitee