<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rt-thread.git/components/lwp/lwp_pid.h, branch copilot/bug-security-related-issue</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/rt-thread.git/atom/components/lwp/lwp_pid.h?h=copilot%2Fbug-security-related-issue</id>
<link rel='self' href='http://cgit.235523.xyz/rt-thread.git/atom/components/lwp/lwp_pid.h?h=copilot%2Fbug-security-related-issue'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/'/>
<updated>2026-05-26T08:56:36Z</updated>
<entry>
<title>lwp: fix pid leak on exec failure before task startup</title>
<updated>2026-05-26T08:56:36Z</updated>
<author>
<name>yang.zhang</name>
<email>zhangyang01@kylinos.cn</email>
</author>
<published>2026-05-03T00:58:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=d4f4c50b9e60223078a7178e47d338ca484bcbc0'/>
<id>urn:sha1:d4f4c50b9e60223078a7178e47d338ca484bcbc0</id>
<content type='text'>
When msh tries to execute a non-ELF path, lwp_execve() may allocate a PID
before lwp_load() fails. The old error path only dropped the LWP reference,
leaving the PID tree entry pointing to a freed LWP.

In an init-less boot flow, this can poison pid 1 after a failed command from
msh. A later LWP launch may then treat the stale pid 1 entry as a valid parent
LWP, resulting in invalid pgrp/session state and a job-control assertion during
process exit.

Add lwp_pid_rollback() for exec/spawn failures before the process becomes
runnable. Unlike lwp_pid_put(), it always releases the PID lock and does not
enter the "no more pid allocation" state when the PID tree becomes empty.

Use the rollback helper in lwp_execve() failure paths after PID allocation.

Signed-off-by: zhangyang &lt;gaoshanliukou@163.com&gt;
</content>
</entry>
<entry>
<title>[components/lwp]add doxygen comment for lwp_pid. #10702</title>
<updated>2025-09-19T10:18:26Z</updated>
<author>
<name>Guorui Li</name>
<email>liguorui1213@163.com</email>
</author>
<published>2025-09-19T10:18:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=2cd44e23c034ce04310c017914a705b586a3fbdc'/>
<id>urn:sha1:2cd44e23c034ce04310c017914a705b586a3fbdc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add system reboot and process teardown support</title>
<updated>2025-01-06T11:34:16Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2024-11-12T09:47:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=944f3d05b508d5eaeaabd8f5d2964847c80dbc3e'/>
<id>urn:sha1:944f3d05b508d5eaeaabd8f5d2964847c80dbc3e</id>
<content type='text'>
The patch introduces support for system reboot functionality and process teardown,
allowing for a clean shutdown and unmounting of the root filesystem. This is
necessary for ensuring a proper system shutdown process, especially when dealing
with resource cleanup and ensuring that all processes have exited before system
shutdown.

Changes:
- Added `lwp_teardown()` function to handle process cleanup and system teardown.
- Introduced `lwp_pid_wait_for_empty()` to wait for process ID table emptiness
  before proceeding with shutdown.
- Updated `dfs_mnt_unref()` to trigger callbacks when unmounting a filesystem.
- Added new reboot types (`RB_AUTOBOOT`, `RB_POWER_OFF`) and implemented their
  corresponding actions, including cleanup of processes and unmounting root
  filesystem.
- Extended `sys_reboot()` to handle reboot and power off types with appropriate
  callbacks for process and filesystem teardown.
- Introduced callback mechanism for root filesystem unmount notifications.

Signed-off-by: Shell &lt;smokewood@qq.com&gt;
</content>
</entry>
<entry>
<title>feat: support PID iteration</title>
<updated>2025-01-06T11:34:16Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2024-11-15T03:54:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=c0b0838892538d2ca13c844ea598db25ca0323e8'/>
<id>urn:sha1:c0b0838892538d2ca13c844ea598db25ca0323e8</id>
<content type='text'>
This change introduces the `lwp_pid_for_each` function, which provides a
convenient and thread-safe method for iterating over PIDs with a user-
defined callback. This addition is necessary to support cases where
operations must be performed on each PID in the balanced tree, enhancing
flexibility and modularity for PID management.

Changes:
- Added `lwp_pid_for_each` function in `lwp_pid.c` to allow iteration
  over PIDs using a callback function and optional data parameter.
- Defined a new internal `pid_foreach_param` structure to encapsulate
  the callback and data for the iteration.
- Added `_before_cb` helper function for executing the callback on each
  PID node during AVL traversal.
- Ensured thread safety by acquiring and releasing the PID lock around
  the AVL traversal within `lwp_pid_for_each`.
- Updated `lwp_pid.h` with the `lwp_pid_for_each` function prototype and
  included `rtthread.h` for necessary types.

Signed-off-by: Shell &lt;smokewood@qq.com&gt;
</content>
</entry>
<entry>
<title>sync smart &amp; dfs (#8672)</title>
<updated>2024-03-28T15:42:56Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2024-03-28T15:42:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=83e95bdff4c48c661b50e1eec56d5fd293b28fbb'/>
<id>urn:sha1:83e95bdff4c48c661b50e1eec56d5fd293b28fbb</id>
<content type='text'>
Signed-off-by: xqyjlj &lt;xqyjlj@126.com&gt;
Signed-off-by: Shell &lt;smokewood@qq.com&gt;
Co-authored-by: xqyjlj &lt;xqyjlj@126.com&gt;</content>
</entry>
<entry>
<title>[smart] fixup of lwp recycling and mm varea (#8206)</title>
<updated>2023-11-02T12:23:11Z</updated>
<author>
<name>Shell</name>
<email>wangxiaoyao@rt-thread.com</email>
</author>
<published>2023-11-02T12:23:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=c2036e769ae5a16931e40f834cc0687342dc89ce'/>
<id>urn:sha1:c2036e769ae5a16931e40f834cc0687342dc89ce</id>
<content type='text'>
Signed-off-by: shell &lt;wangxiaoyao@rt-thread.com&gt;
Signed-off-by: Shell &lt;smokewood@qq.com&gt;
Co-authored-by: xqyjlj &lt;xqyjlj@126.com&gt;</content>
</entry>
<entry>
<title>🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)</title>
<updated>2023-10-25T12:31:25Z</updated>
<author>
<name>xqyjlj</name>
<email>xqyjlj@126.com</email>
</author>
<published>2023-10-25T12:31:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=3283f54c7a0444b2e51ec79a4da57e7871528f05'/>
<id>urn:sha1:3283f54c7a0444b2e51ec79a4da57e7871528f05</id>
<content type='text'>
Signed-off-by: Shell &lt;smokewood@qq.com&gt;
Co-authored-by: Shell &lt;smokewood@qq.com&gt;</content>
</entry>
<entry>
<title>[smart] split out part of lwp_new() to lwp_create()</title>
<updated>2023-10-11T00:48:06Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2023-09-25T08:12:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=a300cef2a82281904a61c3b956e92059c206a416'/>
<id>urn:sha1:a300cef2a82281904a61c3b956e92059c206a416</id>
<content type='text'>
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 &lt;smokewood@qq.com&gt;
</content>
</entry>
<entry>
<title>[component/lwp] support more feature of signal from IEEE Std 1003.1-2017 (#7828)</title>
<updated>2023-07-19T16:02:41Z</updated>
<author>
<name>Shell</name>
<email>smokewood@qq.com</email>
</author>
<published>2023-07-19T16:02:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=58e0ddf2879032495a74897c34e3605de929f82c'/>
<id>urn:sha1:58e0ddf2879032495a74897c34e3605de929f82c</id>
<content type='text'>
Signed-off-by: Shell &lt;smokewood@qq.com&gt;</content>
</entry>
<entry>
<title>sync branch rt-smart. (#6641)</title>
<updated>2022-12-03T04:07:44Z</updated>
<author>
<name>guo</name>
<email>guozhanxin@rt-thread.com</email>
</author>
<published>2022-12-03T04:07:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/rt-thread.git/commit/?id=ecf2d8215961ca7c539132b62a72df6072cc3e14'/>
<id>urn:sha1:ecf2d8215961ca7c539132b62a72df6072cc3e14</id>
<content type='text'>
* Synchronize the code of the rt mart branch to the master branch.
  * TTY device
  * Add lwP code from rt-smart
  * Add vnode in DFS, but DFS will be re-write for rt-smart
  * There are three libcpu for rt-smart:
    * arm/cortex-a, arm/aarch64
    * riscv64

Co-authored-by: Rbb666 &lt;zhangbingru@rt-thread.com&gt;
Co-authored-by: zhkag &lt;zhkag@foxmail.com&gt;</content>
</entry>
</feed>
