Compare commits

...

11 Commits

Author SHA1 Message Date
openharmony_ci 270d5edb5f
!1205 内核代码适配
Merge pull request !1205 from yaowenrui/OpenHarmony-4.0-Release
2024-08-19 07:46:19 +00:00
openharmony_ci aafc474a2f
!1207 容器编译失败问题解决
Merge pull request !1207 from hw_llm/cherry-pick-1723770411
2024-08-16 02:45:45 +00:00
hw_llm 37d08b1d14
update kernel/extended/plimit/los_devicelimit.c.
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-08-16 01:10:22 +00:00
hw_llm 1064329c3a cherry pick d958a85 from https://gitee.com/hw_llm/kernel_liteos_a/pulls/1202
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-16 01:06:51 +00:00
yaowenrui 95d022d129 5.10内核仓代码适配
Signed-off-by: yaowenrui <yaowenrui2@huawei.com>
2024-08-15 14:21:16 +08:00
openharmony_ci 648124ac19
!1199 整数溢出漏洞修复
Merge pull request !1199 from hw_llm/cherry-pick-1721050636
2024-07-20 03:31:59 +00:00
hw_llm f2c2a2e21f fixed da45d3f from https://gitee.com/hw_llm/kernel_liteos_a/pulls/1197
Description: fix CVE-817641412102197248
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IACJLK
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-07-15 13:37:16 +00:00
openharmony_ci c754baab1e
!1195 【挑单 到4.0release分支】UAF漏洞修改
Merge pull request !1195 from hw_llm/cherry-pick-1720705058
2024-07-12 02:22:47 +00:00
hw_llm 21087fbc5c fixed 78db02d from https://gitee.com/hw_llm/kernel_liteos_a/pulls/1194
Description: fix CVE-810023952561737728
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/IAAZWU
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-07-11 13:37:38 +00:00
openharmony_ci 1848f31fdf
!1190 【Pick】【OH-4.0-Release】解决竞争冲突
Merge pull request !1190 from hw_llm/cherry-pick-1715399454
2024-05-23 12:01:24 +00:00
hw_llm dfc582aecd fixed dbbb96c from https://gitee.com/hw_llm/kernel_liteos_a/pulls/1189
Description: liteos_a 内核竞争漏洞修复
IssueNo: https://gitee.com/openharmony/kernel_liteos_a/issues/I9OACM
Feature Or Bugfix: Bugfix
Binary Source: No
Signed-off-by: hw_llm <liu.limin@huawei.com>
2024-05-11 03:50:54 +00:00
4 changed files with 22 additions and 8 deletions

View File

@ -270,6 +270,7 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
{ {
struct mqarray *mqueueCB = NULL; struct mqarray *mqueueCB = NULL;
struct mqpersonal *tmp = NULL; struct mqpersonal *tmp = NULL;
INT32 ret;
mqueueCB = privateMqPersonal->mq_posixdes; mqueueCB = privateMqPersonal->mq_posixdes;
if (mqueueCB == NULL || mqueueCB->mq_personal == NULL) { if (mqueueCB == NULL || mqueueCB->mq_personal == NULL) {
@ -277,6 +278,12 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
return LOS_NOK; return LOS_NOK;
} }
if ((mqueueCB->unlinkflag == TRUE) && (privateMqPersonal->mq_next == NULL)) {
ret = DoMqueueDelete(mqueueCB);
if (ret < 0) {
return ret;
}
}
/* find the personal and remove */ /* find the personal and remove */
if (mqueueCB->mq_personal == privateMqPersonal) { if (mqueueCB->mq_personal == privateMqPersonal) {
mqueueCB->mq_personal = privateMqPersonal->mq_next; mqueueCB->mq_personal = privateMqPersonal->mq_next;
@ -298,9 +305,6 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
/* free the personal */ /* free the personal */
(VOID)LOS_MemFree(OS_SYS_MEM_ADDR, privateMqPersonal); (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, privateMqPersonal);
if ((mqueueCB->unlinkflag == TRUE) && (mqueueCB->mq_personal == NULL)) {
return DoMqueueDelete(mqueueCB);
}
return LOS_OK; return LOS_OK;
} }
@ -604,17 +608,19 @@ int OsMqGetAttr(mqd_t personal, struct mq_attr *mqAttr)
struct mqarray *mqueueCB = NULL; struct mqarray *mqueueCB = NULL;
struct mqpersonal *privateMqPersonal = NULL; struct mqpersonal *privateMqPersonal = NULL;
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
privateMqPersonal = MqGetPrivDataBuff(personal); privateMqPersonal = MqGetPrivDataBuff(personal);
if (privateMqPersonal == NULL) { if (privateMqPersonal == NULL) {
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
return -1; return -1;
} }
if (mqAttr == NULL) { if (mqAttr == NULL) {
errno = EINVAL; errno = EINVAL;
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
return -1; return -1;
} }
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
if (privateMqPersonal->mq_status != MQ_USE_MAGIC) { if (privateMqPersonal->mq_status != MQ_USE_MAGIC) {
errno = EBADF; errno = EBADF;
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX); (VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
@ -634,17 +640,19 @@ int OsMqSetAttr(mqd_t personal, const struct mq_attr *mqSetAttr, struct mq_attr
{ {
struct mqpersonal *privateMqPersonal = NULL; struct mqpersonal *privateMqPersonal = NULL;
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
privateMqPersonal = MqGetPrivDataBuff(personal); privateMqPersonal = MqGetPrivDataBuff(personal);
if (privateMqPersonal == NULL) { if (privateMqPersonal == NULL) {
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
return -1; return -1;
} }
if (mqSetAttr == NULL) { if (mqSetAttr == NULL) {
errno = EINVAL; errno = EINVAL;
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
return -1; return -1;
} }
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
if (privateMqPersonal->mq_status != MQ_USE_MAGIC) { if (privateMqPersonal->mq_status != MQ_USE_MAGIC) {
errno = EBADF; errno = EBADF;
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX); (VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);

View File

@ -6341,7 +6341,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 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 --- 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 +++ new/fs/jffs2/super.c 2022-05-09 20:09:32.170000000 +0800
@@ -9,433 +9,188 @@ @@ -9,434 +9,188 @@
* *
*/ */
@ -6419,6 +6419,7 @@ diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
+ c->cleanmarker_size = sizeof(struct jffs2_unknown_node); + c->cleanmarker_size = sizeof(struct jffs2_unknown_node);
- mutex_init(&f->sem); - mutex_init(&f->sem);
- f->target = NULL;
- inode_init_once(&f->vfs_inode); - inode_init_once(&f->vfs_inode);
-} -}
+ ret = jffs2_do_mount_fs(c); + ret = jffs2_do_mount_fs(c);

View File

@ -401,7 +401,7 @@ ssize_t SysSendMsg(int s, const struct msghdr *message, int flags)
CHECK_ASPACE(message, sizeof(struct msghdr)); CHECK_ASPACE(message, sizeof(struct msghdr));
CPY_FROM_CONST_USER(struct msghdr, message); CPY_FROM_CONST_USER(struct msghdr, message);
if (message && message->msg_iovlen > IOV_MAX) { if (message && (size_t)message->msg_iovlen > IOV_MAX) {
set_errno(EMSGSIZE); set_errno(EMSGSIZE);
return -get_errno(); return -get_errno();
} }
@ -449,7 +449,7 @@ ssize_t SysRecvMsg(int s, struct msghdr *message, int flags)
CHECK_ASPACE(message, sizeof(struct msghdr)); CHECK_ASPACE(message, sizeof(struct msghdr));
CPY_FROM_NONCONST_USER(message); CPY_FROM_NONCONST_USER(message);
if (message && message->msg_iovlen > IOV_MAX) { if (message && (size_t)message->msg_iovlen > IOV_MAX) {
set_errno(EMSGSIZE); set_errno(EMSGSIZE);
return -get_errno(); return -get_errno();
} }

View File

@ -124,6 +124,11 @@ LITEOS_BASELIB += -lcommon
LIB_SUBDIRS += kernel/common LIB_SUBDIRS += kernel/common
LITEOS_KERNEL_INCLUDE += -I $(LITEOSTOPDIR)/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) ifeq ($(LOSCFG_KERNEL_CPPSUPPORT), y)
LITEOS_BASELIB += -lcppsupport LITEOS_BASELIB += -lcppsupport
LIB_SUBDIRS += kernel/extended/cppsupport LIB_SUBDIRS += kernel/extended/cppsupport