From 93388f8045cfb7f1bf2ab3ca548109d35b907f4a Mon Sep 17 00:00:00 2001 From: geniusgogo <2041245+geniusgogo@users.noreply.github.com> Date: Wed, 16 Aug 2023 15:31:36 +0800 Subject: [PATCH] fix msh exec permission denied (#7943) --- components/finsh/msh.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 691ab55381..85fe04b8a7 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -11,6 +11,7 @@ */ #include #include +#include #ifdef RT_USING_FINSH @@ -483,7 +484,7 @@ found_program: int msh_exec(char *cmd, rt_size_t length) { - int cmd_ret; + int cmd_ret = 0; /* strim the beginning of command */ while ((length > 0) && (*cmd == ' ' || *cmd == '\t')) @@ -521,7 +522,8 @@ int msh_exec(char *cmd, rt_size_t length) #ifdef RT_USING_SMART /* exec from msh_exec , debug = 0*/ /* _msh_exec_lwp return is pid , <= 0 means failed */ - if (_msh_exec_lwp(0, cmd, length) > 0) + cmd_ret = _msh_exec_lwp(0, cmd, length); + if (cmd_ret > 0) { return 0; } @@ -538,7 +540,16 @@ int msh_exec(char *cmd, rt_size_t length) } *tcmd = '\0'; } - rt_kprintf("%s: command not found.\n", cmd); +#ifdef RT_USING_SMART + if (cmd_ret == -EACCES) + { + rt_kprintf("%s: Permission denied.\n", cmd); + } + else +#endif + { + rt_kprintf("%s: command not found.\n", cmd); + } return -1; }