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 <zhangshou...@xiaomi.com> AuthorDate: Thu Dec 12 17:10:01 2024 +0800 Use lib_get_tempbuffer Saving stack Signed-off-by: zhangshoukui <zhangshou...@xiaomi.com> --- 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 */