This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push:
new 339eeaa08 Use lib_get_tempbuffer Saving stack
339eeaa08 is described below
commit 339eeaa087efcd24d64235f0c4f0f2267e6b0b2f
Author: zhangshoukui <[email protected]>
AuthorDate: Thu Dec 12 17:10:01 2024 +0800
Use lib_get_tempbuffer Saving stack
Signed-off-by: zhangshoukui <[email protected]>
---
nshlib/nsh_mmcmds.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/nshlib/nsh_mmcmds.c b/nshlib/nsh_mmcmds.c
index 81427a00b..9cbd01ce0 100644
--- a/nshlib/nsh_mmcmds.c
+++ b/nshlib/nsh_mmcmds.c
@@ -26,6 +26,7 @@
#include <nuttx/config.h>
+#include <stdio.h>
#include <string.h>
#include "nsh.h"
@@ -58,9 +59,18 @@ int cmd_free(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char
**argv)
int cmd_memdump(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv)
{
- char arg[LINE_MAX] = "";
+ FAR char *arg;
+ int ret;
int i;
+ arg = lib_get_tempbuffer(LINE_MAX);
+ if (arg == NULL)
+ {
+ return -ENOMEM;
+ }
+
+ arg[0] = '\0';
+
if (argc == 1)
{
strlcpy(arg, "used", LINE_MAX);
@@ -68,8 +78,10 @@ int cmd_memdump(FAR struct nsh_vtbl_s *vtbl, int argc, FAR
char **argv)
else if (argc >= 2 && (strcmp(argv[1], "-h") == 0 ||
strcmp(argv[1], "help") == 0))
{
- return nsh_catfile(vtbl, argv[0],
- CONFIG_NSH_PROC_MOUNTPOINT "/memdump");
+ ret = nsh_catfile(vtbl, argv[0],
+ CONFIG_NSH_PROC_MOUNTPOINT "/memdump");
+ lib_put_tempbuffer(arg);
+ return ret;
}
else
{
@@ -83,8 +95,10 @@ int cmd_memdump(FAR struct nsh_vtbl_s *vtbl, int argc, FAR
char **argv)
}
}
- return nsh_writefile(vtbl, argv[0], arg, strlen(arg),
- CONFIG_NSH_PROC_MOUNTPOINT "/memdump");
+ ret = nsh_writefile(vtbl, argv[0], arg, strlen(arg),
+ CONFIG_NSH_PROC_MOUNTPOINT "/memdump");
+ lib_put_tempbuffer(arg);
+ return ret;
}
#endif /* !CONFIG_NSH_DISABLE_MEMDUMP && NSH_HAVE_WRITEFILE */