101 Commits

Author SHA1 Message Date
Shell
cfe1768815 fixup: smart: sys_mount: UAF vulnerability
This patch addresses a use-after-free (UAF) vulnerability in the
sys_mount. The issue occurred due to improper handling of memory
deallocation, which could lead to crashes or undefined behavior on user
request of mounting.

Changes made:
- Moved the `rt_free(copy_source)` function call to occur after the necessary
  operations are completed, preventing premature deallocation of memory.

Signed-off-by: Shell <smokewood@qq.com>
2024-10-21 17:15:52 +08:00
zms123456
fb02e7934d
[component][net]add more socket flag 2024-09-13 17:30:24 -04:00
zms123456
b423a6b1e3
[components][lwp]remove extra check in sys_bind 2024-09-11 18:04:05 -04:00
zhuzhuzhu
1be24fc7da
【修复】修复link系统调用返回值问题 2024-08-25 10:57:38 -04:00
zhuzhuzhu
dc232080a0
【修复】修复rmdir系统调用返回值不符合用户预期问题 2024-08-25 10:57:15 -04:00
zhuzhuzhu
c4c227e367
【修复】修复symlink系统调用返回值不是预期问题 2024-08-25 10:56:03 -04:00
zhujiale
afa17ed343 fix_return_err 2024-08-24 14:44:39 +08:00
rcitachi
9a84c13b2e
[lwp] Implementation of setpgrp and fix mmap2 problems (#9308)
* mmap2 failure handling

当传入一个非常大的地址时,offset会计算得到一个值,又因为传入的地址错误,rc会得到错误码,结合offset会得到一个很奇怪的值。

* Implementation of setpgrp

执行setpgrp会走到这一步,在执行getpgrp无法得到创建的group的值

* Modify the return method of mmap
2024-08-22 17:53:18 -04:00
zms123456
9d95ad9b8d
[lwp][tid]add error log when tid depleted, and return correct errno when clone failed (#9327)
add error log when tid depleted, and return correct errno when clone failed
2024-08-22 17:52:45 -04:00
zms123456
fd31965c3c
[components][lwp]fix mount param issue (#9333)
fix mount param issue
2024-08-22 17:52:19 -04:00
zhao maosheng
a6b2014214 fix exec and mount error code 2024-07-18 13:25:37 +08:00
Shell
e5cf86267b
[smart] fixup of script execution (#9009)
This patch fixup the script execution capabilities on argv passing
and adds support for arguments larger than 4k.

According to POSIX, the script parameter is quiet different
from the current implementation. Especially on the way it inserts
the path of executables. At the end, when you execute a script
from `$PATH`, it always fails.

For the script, interpreter will be invoked with the following
arguments: `{interpreter [optional-arg] pathname arg...}`
where pathname is the pathname of the file specified as the first
argument of execve(), and arg...  is the series of words pointed
to by the argv argument of execve(), starting at argv[1].  Note that
there is no way to get the argv[0] that was passed to the
execve() call.

The changes include:

- Separating argument, environment variable, and auxiliary vector
  processing into a new lwp_args.c file.
- Fixing bugs in script argument processing and supporting arguments
  larger than 4k.
- Updating lwp_execve to use the new argscopy function and removing
  the old lwp_argscopy function.
- Making various modifications to lwp_load and elf_aux_fill to work
  with the new argument processing.
- Removing unnecessary code related to dynamic loading and interpreter
  scripts.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-31 17:32:19 +08:00
Shell
63591d935e
[smart] fixup errno passing on sys_mkdir() (#9007)
Use _SYS_WRAP to fetch errno on return of mkdir to avoiding overriding
of it on other system APIs.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 18:06:54 +08:00
Shell
f179ce12b7
[smart] update sched_setaffinity() to use thread(task) ID (#9004)
Correct `sched_setaffinity()` to use the thread IDs (TIDs) instead of
process IDs (PIDs). The previous implementation used PIDs, which
caused issues since affinity settings need to be applied at the
thread level.

As the manual documented, the signature is:

>        int sched_setaffinity(pid_t pid, size_t cpusetsize,
>                             const cpu_set_t *mask);

Yes, it's tricky, the identification passing in is called **'PID'**.
But when we talk about 'pid' from GNU libc, it's the **'task-id'**,
aka, `thread->tid` known in kernel.

Changes were made by updating the function signatures and logic in
`lwp.h`, `lwp_pid.c`, and `lwp_syscall.c` to accept TIDs. Specifically,
the `lwp_setaffinity` function and related internal functions now
operate using thread IDs and adjust thread affinity settings accordingly

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 06:53:22 +08:00
xiao-mang
75f41723cb
fix sys_getcwd (#8852) 2024-04-25 18:28:53 +08:00
Shell
864055bf18
[fixup] aarch64 UMP compiler error (#8677)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-30 17:58:38 +08:00
Shell
83e95bdff4
sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell
71560bafb5
🎯 Sync smart & scheduler codes (#8537)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-02-23 17:49:15 +08:00
rcitachi
0c96b26c23
[sys_bind] [signalfd] update (#8507) 2024-01-26 22:14:02 +08:00
geniusgogo
6b22a0a2b7
dfsv2 code tidy. (#8374) 2023-12-16 18:06:47 +08:00
zmq810150896
2790ce5357
Updated issues related to uds capacity and eventfd macro redefinition (#8329) 2023-12-06 13:51:13 +08:00
rcitachi
58665c7f50
[AF_UNIX] Update AF_UNIX bind, connect entry (#8314) 2023-12-02 12:11:01 +08:00
rcitachi
1e6b2a81d0
修复 #8293 问题 (#8307) 2023-11-29 14:08:47 +08:00
geniusgogo
74925f43ed
fix dfs path name overflow. (#8305) 2023-11-28 17:16:21 +08:00
rcitachi
c06f4e98fc
[SAL] Update SAL,Add socketpair sendmsg recvmsg function (#8293) 2023-11-28 13:56:06 +08:00
xqyjlj
5ad6a6f2c5
🐞 fix: fix taskset (#8211) 2023-11-02 23:12:44 +08:00
Shell
c2036e769a
[smart] fixup of lwp recycling and mm varea (#8206)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2023-11-02 20:23:11 +08:00
xqyjlj
3283f54c7a
🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: Shell <smokewood@qq.com>
2023-10-25 20:31:25 +08:00
Shell
fb78a71020
[smart] replace varea pgmgr and fixup of dfs mmap (#8184)
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-10-25 14:59:48 +08:00
geniusgogo
ecd29fda60
Sync dfs lwp (#8123) 2023-10-17 13:07:59 +08:00
Shell
1e7add54d4
[smart] fixup: syscall.c (#8131)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
2023-10-14 13:09:17 +08:00
Shell
4158c8e88e
[smart] Replace irq disable/enable codes in futex (#7941)
Signed-off-by: Shell <smokewood@qq.com>
2023-10-14 13:07:45 +08:00
xiao-mang
5d16042765
add sys_utimensat (#8124) 2023-10-13 19:21:49 +08:00
Shell
a300cef2a8 [smart] split out part of lwp_new() to lwp_create()
Prev implementation of lwp_new() including the create of lwp object
and the pid allocation. But not every lwp object need a pid.
So this patch split out the business of lwp_new() to improve the
maintainability.

Signed-off-by: Shell <smokewood@qq.com>
2023-10-11 08:48:06 +08:00
skychen123
fcd0fecd3e
add sys_setitimer syscall (#8096) 2023-10-08 13:30:04 +08:00
zmq810150896
7c2f807a7c
Add the system call timerfd and update SConscript for signalfd (#8067) 2023-09-23 14:18:29 +08:00
zmq810150896
dc84765823
[smart] Updated the API for kernel access to user address issues and for calculating string length (#8058) 2023-09-23 14:06:00 +08:00
Shell
e7c3ca61fd
[smart] fix rt_memcpy to lwp_memcpy in smart source (#8033) 2023-09-15 15:57:08 +08:00
zmq810150896
7c3d966df6
Add the system call signalfd (#8001) 2023-09-11 14:06:08 +08:00
Shell
47b183a297
[smart/syscall] fix exit(2) and add exit_group(2) (#8005)
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-09-09 09:35:56 +08:00
Meco Man
5f948690c9 [rtdef] rename RT_CTASSERT to RT_STATIC_ASSERT 2023-09-06 22:21:22 -04:00
xyz
341fb40c95 [smart][fix] lwp fork with data copy 2023-08-30 16:37:08 +08:00
Shell
d862816a51
[components/mm] add unmap page API (#7834)
Signed-off-by: Shell <smokewood@qq.com>
2023-08-16 15:38:59 +08:00
geniusgogo
4d20416b2f
update components & lwp. (#7888) 2023-08-07 12:22:14 -04:00
Shell
325c3d2a48
[smart] Fix bugs on lwp kill (#7892)
Signed-off-by: Shell <smokewood@qq.com>
2023-08-03 20:25:13 +08:00
zmq810150896
3f0a5e76bf
Add the system call epoll (#7893) 2023-08-01 17:15:41 +08:00
zmq810150896
307e9e5e98
Add the system call eventfd (#7835) 2023-07-27 17:24:56 +08:00
Tennn11
43b451b27c
[syscall][socket]fix socket addr bug (#7876) 2023-07-27 17:24:26 +08:00
Shell
ef91876ee7
[smart] fix the setup of fake lwp in sys_execve (#7855) 2023-07-25 15:58:10 +08:00
Shell
58e0ddf287
[component/lwp] support more feature of signal from IEEE Std 1003.1-2017 (#7828)
Signed-off-by: Shell <smokewood@qq.com>
2023-07-20 00:02:41 +08:00