修复ppoll接口"[ERR]OsMemFree check error!"报错

【背景】
内核中释放用户空间指针报错:"[ERR]OsMemFree check error!"

【修改方案】
修改SysPpoll函数。

【影响】
对现有的产品编译不会有影响。

re #I47YWZ

Change-Id: Id7f86036870d4f32be8fc438b9aad85cdda59546
Signed-off-by: pef <cyd1997@126.com>
This commit is contained in:
pef
2021-10-28 11:47:10 +00:00
parent a55f68f957
commit 78a297fd4e
6 changed files with 183 additions and 91 deletions

View File

@@ -226,9 +226,9 @@ int OsSigprocMask(int how, const sigset_t_l *setl, sigset_t_l *oldset)
unsigned int intSave;
sigset_t set;
int retVal;
if (setl != NULL) {
retVal = LOS_ArchCopyFromUser(&set, &(setl->sig[0]), sizeof(sigset_t));
retVal = LOS_CopyToKernel(&set, sizeof(sigset_t), &(setl->sig[0]), sizeof(sigset_t));
if (retVal != 0) {
return -EFAULT;
}
@@ -268,7 +268,7 @@ int OsSigprocMask(int how, const sigset_t_l *setl, sigset_t_l *oldset)
SCHEDULER_UNLOCK(intSave);
if (oldset != NULL) {
retVal = LOS_ArchCopyToUser(&(oldset->sig[0]), &oldSigprocmask, sizeof(sigset_t));
retVal = LOS_CopyFromKernel(&(oldset->sig[0]), sizeof(sigset_t), &oldSigprocmask, sizeof(sigset_t));
if (retVal != 0) {
return -EFAULT;
}