Compare commits

...

30 Commits

Author SHA1 Message Date
openharmony_ci 0d1635757f
!1242 fs_epoll竞争漏洞修复
Merge pull request !1242 from 石子怡/master
2024-10-15 14:09:01 +00:00
石子怡 c099376d69
update fs/vfs/epoll/fs_epoll.c.
Signed-off-by: 石子怡 <z15319797139@163.com>
2024-10-15 08:15:43 +00:00
石子怡 63f261d239
update fs/vfs/epoll/fs_epoll.c.
Signed-off-by: 石子怡 <z15319797139@163.com>
2024-10-15 07:53:37 +00:00
石子怡 02abd34ad2
update fs/vfs/epoll/fs_epoll.c.
Signed-off-by: 石子怡 <z15319797139@163.com>
2024-10-15 07:47:13 +00:00
openharmony_ci 20c42a9de5
!1238 shm pid 入参漏洞修复
Merge pull request !1238 from hw_llm/master
2024-10-12 12:07:26 +00:00
hw_llm 14c79fc921 Description: shm pid入参 漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAWM6R
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-10-12 18:29:50 +08:00
openharmony_ci 51428fb84a
!1235 hidumper 漏洞修复
Merge pull request !1235 from hw_llm/master
2024-09-29 14:20:21 +00:00
hw_llm 31da79ec80 Description: hidumper 漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAUKD9
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-09-29 17:41:35 +08:00
openharmony_ci 88cfb3de9d
!1232 mem 漏洞修复
Merge pull request !1232 from hw_llm/master
2024-09-29 09:12:37 +00:00
hw_llm 4bb465f9af Description: mem 漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAUJDR
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-09-29 16:09:45 +08:00
openharmony_ci ef7610470c
!1229 liteipc 解决 释放后使用问题
Merge pull request !1229 from hw_llm/master
2024-09-24 01:11:34 +00:00
hw_llm 8b57198526 Description: liteipc 解决 释放后使用问题
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAT2X3
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-09-23 20:01:13 +08:00
openharmony_ci 09bcabfaf6
!1225 VM Map 添加LITEIPC保护
Merge pull request !1225 from hw_llm/master
2024-09-20 09:53:50 +00:00
hw_llm 75af9e28d9 Description: VM Map 添加LiteIPC 保护
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IASJFR
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-09-20 16:42:19 +08:00
openharmony_ci 42f79f133b
!1224 OsFlushDirtyPage 函数内变量类型调整
Merge pull request !1224 from hw_llm/master
2024-09-06 12:20:09 +00:00
hw_llm 4abaa42830 Description: OsFlushDirtyPage 函数内变量类型调整
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IA87P4
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-09-06 14:41:43 +08:00
openharmony_ci 5d1caa2cfe
!1198 【轻量级 PR】:修复OsMemPoolDeInit函数名错误
Merge pull request !1198 from brucezhao/N/A
2024-08-28 08:58:35 +00:00
openharmony_ci 437c6530da
!1221 OsShellCmdTskInfoGet 内存泄露漏洞修复
Merge pull request !1221 from hw_llm/master
2024-08-26 01:29:37 +00:00
hw_llm b58c6d41f3 Description: OsShellCmdTskInfoGet 内存泄露漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAM34B?from=project-issue
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-23 17:33:57 +08:00
openharmony_ci cab654a3fe
!1218 SysEpollWait 系统调用使用正确长度。
Merge pull request !1218 from hw_llm/master
2024-08-23 09:27:21 +00:00
hw_llm 5e3a8f11b4 Description: syscall SysEpollWait 执行漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IALYB5?from=project-issue
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-23 16:28:32 +08:00
openharmony_ci 2e642e6d9a
!1212 console read 漏洞修复
Merge pull request !1212 from hw_llm/master
2024-08-22 07:06:10 +00:00
hw_llm b22a7c266e Description: console read 漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IALLNX?from=project-issue
Feature Or Bugfix: Feature
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-21 20:57:40 +08:00
openharmony_ci ef1b6f9cde
!1209 liteos_a 内核shell 漏洞修复
Merge pull request !1209 from hw_llm/master
2024-08-20 13:58:56 +00:00
hw_llm 2ac53f2c00 Description: shell lk 漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAKVF0
Feature Or Bugfix: Feature
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-19 11:04:32 +08:00
openharmony_ci 37162aafb6
!1202 容器测试编译报错问题
Merge pull request !1202 from hw_llm/master
2024-08-15 13:30:11 +00:00
hw_llm d958a8537c Description: 解决容器编译报错问题
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/I9TEYD
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-15 19:10:19 +08:00
openharmony_ci aaf352f7f2
!1201 内核代码适配
Merge pull request !1201 from yaowenrui/master
2024-08-15 02:45:09 +00:00
yaowenrui 3f8b270180 5.10内核仓代码适配
Signed-off-by: yaowenrui <yaowenrui2@huawei.com>
2024-08-14 15:54:54 +08:00
brucezhao 28159170be
修复OsMemPoolDeInit函数名错误
函数定义为`OsMemPoolDeinit`,而函数调用处使用的是`OsMemPoolDeInit`,前后不一致,对函数定义进行修复

Signed-off-by: brucezhao <zhaocl1994@qq.com>
2024-07-15 02:09:36 +00:00
16 changed files with 54 additions and 23 deletions

View File

@ -61,7 +61,7 @@ static ssize_t MemMap(struct file *filep, LosVmMapRegion *region)
VADDR_T vaddr = region->range.base;
LosVmSpace *space = LOS_SpaceGet(vaddr);
if ((paddr >= SYS_MEM_BASE) && (paddr < SYS_MEM_END)) {
if (((paddr + size) >= SYS_MEM_BASE) && (paddr < SYS_MEM_END)) {
return -EINVAL;
}

View File

@ -6340,7 +6340,7 @@ diff -Nupr old/fs/jffs2/summary.h new/fs/jffs2/summary.h
diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
--- old/fs/jffs2/super.c 2022-05-09 17:22:53.000000000 +0800
+++ new/fs/jffs2/super.c 2022-05-09 20:09:32.170000000 +0800
@@ -9,433 +9,188 @@
@@ -9,434 +9,188 @@
*
*/
@ -6418,6 +6418,7 @@ diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
+ c->cleanmarker_size = sizeof(struct jffs2_unknown_node);
- mutex_init(&f->sem);
- f->target = NULL;
- inode_init_once(&f->vfs_inode);
-}
+ ret = jffs2_do_mount_fs(c);

View File

@ -220,14 +220,18 @@ int epoll_close(int epfd)
{
struct epoll_head *epHead = NULL;
(VOID)pthread_mutex_lock(&g_epollMutex);
epHead = EpollGetDataBuff(epfd);
if (epHead == NULL) {
(VOID)pthread_mutex_unlock(&g_epollMutex);
set_errno(EBADF);
return -1;
}
DoEpollClose(epHead);
return EpollFreeSysFd(epfd);
int ret = EpollFreeSysFd(epfd);
(VOID)pthread_mutex_unlock(&g_epollMutex);
return ret;
}
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
@ -236,15 +240,16 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
int i;
int ret = -1;
(VOID)pthread_mutex_lock(&g_epollMutex);
epHead = EpollGetDataBuff(epfd);
if (epHead == NULL) {
set_errno(EBADF);
return ret;
goto OUT_RELEASE;
}
if (ev == NULL) {
set_errno(EINVAL);
return -1;
goto OUT_RELEASE;
}
switch (op) {
@ -252,18 +257,19 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
ret = CheckFdExist(epHead, fd);
if (ret == -1) {
set_errno(EEXIST);
return -1;
goto OUT_RELEASE;
}
if (epHead->nodeCount == EPOLL_DEFAULT_SIZE) {
set_errno(ENOMEM);
return -1;
goto OUT_RELEASE;
}
epHead->evs[epHead->nodeCount].events = ev->events | POLLERR | POLLHUP;
epHead->evs[epHead->nodeCount].data.fd = fd;
epHead->nodeCount++;
return 0;
ret = 0;
break;
case EPOLL_CTL_DEL:
for (i = 0; i < epHead->nodeCount; i++) {
if (epHead->evs[i].data.fd != fd) {
@ -275,23 +281,29 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
epHead->nodeCount - i);
}
epHead->nodeCount--;
return 0;
ret = 0;
goto OUT_RELEASE;
}
set_errno(ENOENT);
return -1;
break;
case EPOLL_CTL_MOD:
for (i = 0; i < epHead->nodeCount; i++) {
if (epHead->evs[i].data.fd == fd) {
epHead->evs[i].events = ev->events | POLLERR | POLLHUP;
return 0;
ret = 0;
goto OUT_RELEASE;
}
}
set_errno(ENOENT);
return -1;
break;
default:
set_errno(EINVAL);
return -1;
break;
}
OUT_RELEASE:
(VOID)pthread_mutex_unlock(&g_epollMutex);
return ret;
}
int epoll_wait(int epfd, FAR struct epoll_event *evs, int maxevents, int timeout)
@ -326,7 +338,7 @@ int epoll_wait(int epfd, FAR struct epoll_event *evs, int maxevents, int timeout
return -1;
}
for (i = 0; i < epHead->nodeCount; i++) {
for (i = 0; i < pollSize; i++) {
pFd[i].fd = epHead->evs[i].data.fd;
pFd[i].events = (short)epHead->evs[i].events;
}

View File

@ -157,7 +157,8 @@ typedef struct VmSpace {
#define VM_MAP_REGION_FLAG_SHM (1<<16)
#define VM_MAP_REGION_FLAG_FIXED (1<<17)
#define VM_MAP_REGION_FLAG_FIXED_NOREPLACE (1<<18)
#define VM_MAP_REGION_FLAG_INVALID (1<<19) /* indicates that flags are not specified */
#define VM_MAP_REGION_FLAG_LITEIPC (1<<19)
#define VM_MAP_REGION_FLAG_INVALID (1<<20) /* indicates that flags are not specified */
STATIC INLINE UINT32 OsCvtProtFlagsToRegionFlags(unsigned long prot, unsigned long flags)
{

View File

@ -887,7 +887,7 @@ STATIC UINT32 OsMemPoolInit(VOID *pool, UINT32 size)
}
#ifdef LOSCFG_MEM_MUL_POOL
STATIC VOID OsMemPoolDeinit(const VOID *pool, UINT32 size)
STATIC VOID OsMemPoolDeInit(const VOID *pool, UINT32 size)
{
#ifdef LOSCFG_KERNEL_LMS
if (g_lms != NULL) {

View File

@ -379,6 +379,7 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsShellCmdTskInfoGet(UINT32 processID, VOID *seqBu
(VOID)memset_s(threadInfo, sizeof(ProcessThreadInfo), 0, sizeof(ProcessThreadInfo));
if (OsGetProcessThreadInfo(processID, threadInfo) != LOS_OK) {
(VOID)LOS_MemFree(m_aucSysMem1, threadInfo);
return LOS_NOK;
}

View File

@ -76,6 +76,8 @@ const CHAR *OsGetRegionNameOrFilePath(LosVmMapRegion *region)
return "MMAP";
} else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) {
return "SHM";
} else if (region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
return "LITEIPC";
} else {
return "";
}

View File

@ -261,7 +261,7 @@ STATIC UINT32 GetDirtySize(LosFilePage *fpage, struct Vnode *vnode)
STATIC INT32 OsFlushDirtyPage(LosFilePage *fpage)
{
UINT32 ret;
ssize_t ret;
size_t len;
char *buff = NULL;
struct Vnode *vnode = fpage->mapping->host;

View File

@ -273,6 +273,8 @@ STATIC UINT32 OsInheritOldRegionName(UINT32 oldRegionFlags)
vmFlags |= VM_MAP_REGION_FLAG_MMAP;
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) {
vmFlags |= VM_MAP_REGION_FLAG_SHM;
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
vmFlags |= VM_MAP_REGION_FLAG_LITEIPC;
}
return vmFlags;
@ -298,7 +300,9 @@ INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
goto OUT_MPROTECT;
}
if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) || (region->regionFlags & VM_MAP_REGION_FLAG_HEAP)) {
if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) ||
(region->regionFlags & VM_MAP_REGION_FLAG_HEAP) ||
(region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC)) {
ret = -EPERM;
goto OUT_MPROTECT;
}

View File

@ -689,6 +689,9 @@ INT32 ShmCtl(INT32 shmid, INT32 cmd, struct shmid_ds *buf)
(shm_perm.mode & ACCESSPERMS);
seg->ds.shm_ctime = time(NULL);
#ifdef LOSCFG_SHELL
if (OsProcessIDUserCheckInvalid(shm_perm.uid)) {
break;
}
(VOID)memcpy_s(seg->ownerName, OS_PCB_NAME_LEN, OS_PCB_FROM_PID(shm_perm.uid)->processName,
OS_PCB_NAME_LEN);
#endif

View File

@ -687,7 +687,7 @@ STATIC ssize_t ConsoleRead(struct file *filep, CHAR *buffer, size_t bufLen)
}
if (userBuf) {
if (LOS_ArchCopyToUser(buffer, sbuffer, bufLen) != 0) {
if (LOS_ArchCopyToUser(buffer, sbuffer, ret) != 0) {
ret = -EFAULT;
goto ERROUT;
}

View File

@ -278,7 +278,6 @@ static void DumpFaultLog(void)
static void DumpMemData(struct MemDumpParam *param)
{
PRINTK("\nDumpType: %d\n", param->type);
PRINTK("Unsupported now!\n");
}

View File

@ -239,6 +239,7 @@ LITE_OS_SEC_TEXT STATIC int LiteIpcMmap(struct file *filep, LosVmMapRegion *regi
goto ERROR_MAP_OUT;
}
ipcInfo->pool.poolSize = region->range.size;
region->regionFlags |= VM_MAP_REGION_FLAG_LITEIPC;
return 0;
ERROR_MAP_OUT:
LOS_VFree(ipcInfo->pool.kvaddr);
@ -757,7 +758,10 @@ LITE_OS_SEC_TEXT STATIC UINT32 HandlePtr(LosProcessCB *pcb, SpecialObj *obj, BOO
obj->content.ptr.buff = (VOID *)GetIpcUserAddr(pcb, (INTPTR)buf);
EnableIpcNodeFreeByUser(pcb, (VOID *)buf);
} else {
(VOID)LiteIpcNodeFree(pcb, (VOID *)GetIpcKernelAddr(pcb, (INTPTR)obj->content.ptr.buff));
buf = (VOID *)GetIpcKernelAddr(pcb, (INTPTR)obj->content.ptr.buff);
if (IsIpcNode(pcb, buf) == TRUE) {
(VOID)LiteIpcNodeFree(pcb, buf);
}
}
return LOS_OK;
}

View File

@ -488,7 +488,7 @@ UINT32 OsDevLimitWriteDeny(ProcLimitSet *plimit, const CHAR *buf, UINT32 size)
STATIC VOID DevLimitItemSetAccess(CHAR *accArray, INT16 access)
{
INT32 index = 0;
(VOID)memset_s(acc, ACCLEN, 0, ACCLEN);
(VOID)memset_s(accArray, ACCLEN, 0, ACCLEN);
if (access & DEVLIMIT_ACC_READ) {
accArray[index] = 'r';
index++;

View File

@ -154,7 +154,6 @@ INT32 CmdLog(INT32 argc, const CHAR **argv)
PRINTK("not support yet\n");
}
} else if (!strncmp(argv[0], "path", strlen(argv[0]) + 1)) {
OsLkLogFileSet(argv[1]);
PRINTK("not support yet\n");
} else {
PRINTK("Usage: log level <num>\n");

View File

@ -124,6 +124,11 @@ LITEOS_BASELIB += -lcommon
LIB_SUBDIRS += kernel/common
LITEOS_KERNEL_INCLUDE += -I $(LITEOSTOPDIR)/kernel/common
ifeq ($(LOSCFG_KERNEL_CONTAINER), y)
LITEOS_BASELIB += -lcontainer
LIB_SUBDIRS += kernel/extended/container
endif
ifeq ($(LOSCFG_KERNEL_CPPSUPPORT), y)
LITEOS_BASELIB += -lcppsupport
LIB_SUBDIRS += kernel/extended/cppsupport