You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2026/10/09 12:31:34 UTC
(nuttx) 06/09: boards: reset and power-off need PR_CAP_ADMIN
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 66eac21f687ddf8eb0e19c73914358703bd444ef
Author: Royyan Zahir <ro...@gmail.com>
AuthorDate: Fri Oct 2 06:56:45 2026 +0400
boards: reset and power-off need PR_CAP_ADMIN
boardctl(BOARDIOC_RESET) and boardctl(BOARDIOC_POWEROFF) refuse a task
group without it.
Signed-off-by: Royyan Zahir <ro...@gmail.com>
---
boards/boardctl.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/boards/boardctl.c b/boards/boardctl.c
index f78d0e77cc2..df128042a14 100644
--- a/boards/boardctl.c
+++ b/boards/boardctl.c
@@ -41,6 +41,7 @@
#include <nuttx/binfmt/symtab.h>
#include <nuttx/drivers/ramdisk.h>
#include <nuttx/reboot_notifier.h>
+#include <nuttx/sched.h>
#include <nuttx/trace.h>
#ifdef CONFIG_NX
@@ -413,6 +414,12 @@ int boardctl(unsigned int cmd, uintptr_t arg)
case BOARDIOC_POWEROFF:
{
+ if (!nxsched_capable(PR_CAP_ADMIN))
+ {
+ ret = -EPERM;
+ break;
+ }
+
reboot_notifier_call_chain(SYS_POWER_OFF, (FAR void *)arg);
up_flush_dcache_all();
ret = board_power_off((int)arg);
@@ -430,6 +437,12 @@ int boardctl(unsigned int cmd, uintptr_t arg)
case BOARDIOC_RESET:
{
+ if (!nxsched_capable(PR_CAP_ADMIN))
+ {
+ ret = -EPERM;
+ break;
+ }
+
g_nx_initstate = OSINIT_RESET;
sched_trace_mark("RESET");
reboot_notifier_call_chain(SYS_RESTART, (FAR void *)arg);