From 02dc5e36c051733c95fef88b19b8686d2e64a453 Mon Sep 17 00:00:00 2001 From: geniusgogo Date: Fri, 11 Aug 2023 14:50:08 +0800 Subject: [PATCH 1/2] fix msh exec permission denied --- components/finsh/msh.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 691ab553817..b66f954222a 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -483,7 +483,7 @@ int _msh_exec_lwp(int debug, char *cmd, rt_size_t length) 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 +521,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 +539,15 @@ int msh_exec(char *cmd, rt_size_t length) } *tcmd = '\0'; } - rt_kprintf("%s: command not found.\n", cmd); + + if (cmd_ret == -EACCES) + { + rt_kprintf("%s: Permission denied.\n", cmd); + } + else + { + rt_kprintf("%s: command not found.\n", cmd); + } return -1; } From 8a7278e0c25acaf0c15d8a3ffcb97c04da9a61cc Mon Sep 17 00:00:00 2001 From: geniusgogo Date: Fri, 11 Aug 2023 17:24:47 +0800 Subject: [PATCH 2/2] fix build error. --- components/finsh/msh.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/finsh/msh.c b/components/finsh/msh.c index b66f954222a..85fe04b8a76 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -11,6 +11,7 @@ */ #include #include +#include #ifdef RT_USING_FINSH @@ -539,12 +540,13 @@ int msh_exec(char *cmd, rt_size_t length) } *tcmd = '\0'; } - +#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); }