From 2b2830c25224d28674293855b5688f3dbd4bcae5 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Mon, 6 Jun 2022 16:13:27 +0800 Subject: [PATCH] arch/assert: Replace twice strlcpy with single snprintf Signed-off-by: Xiang Xiao --- arch/arm/src/common/arm_assert.c | 7 +++---- arch/risc-v/src/common/riscv_assert.c | 7 +++---- arch/xtensa/src/common/xtensa_dumpstate.c | 7 +++---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/arch/arm/src/common/arm_assert.c b/arch/arm/src/common/arm_assert.c index 5dd24ea275..f8e14b2085 100644 --- a/arch/arm/src/common/arm_assert.c +++ b/arch/arm/src/common/arm_assert.c @@ -185,13 +185,12 @@ static void arm_dump_task(struct tcb_s *tcb, void *arg) else #endif { - FAR char **argv; + FAR char **argv = tcb->group->tg_info->argv + 1; size_t npos = 0; - for (argv = tcb->group->tg_info->argv + 1; *argv; argv++) + while (*argv != NULL && npos < sizeof(args)) { - npos += strlcpy(args + npos, *argv, sizeof(args) - npos); - npos += strlcpy(args + npos, " ", sizeof(args) - npos); + npos += snprintf(args + npos, sizeof(args) - npos, "%s ", *argv++); } } diff --git a/arch/risc-v/src/common/riscv_assert.c b/arch/risc-v/src/common/riscv_assert.c index 7b83167198..5eecd4675a 100644 --- a/arch/risc-v/src/common/riscv_assert.c +++ b/arch/risc-v/src/common/riscv_assert.c @@ -185,13 +185,12 @@ static void riscv_dump_task(struct tcb_s *tcb, void *arg) else #endif { - FAR char **argv; + FAR char **argv = tcb->group->tg_info->argv + 1; size_t npos = 0; - for (argv = tcb->group->tg_info->argv + 1; *argv; argv++) + while (*argv != NULL && npos < sizeof(args)) { - npos += strlcpy(args + npos, *argv, sizeof(args) - npos); - npos += strlcpy(args + npos, " ", sizeof(args) - npos); + npos += snprintf(args + npos, sizeof(args) - npos, "%s ", *argv++); } } diff --git a/arch/xtensa/src/common/xtensa_dumpstate.c b/arch/xtensa/src/common/xtensa_dumpstate.c index b1ac1f4400..811a90f593 100644 --- a/arch/xtensa/src/common/xtensa_dumpstate.c +++ b/arch/xtensa/src/common/xtensa_dumpstate.c @@ -100,13 +100,12 @@ static void xtensa_dump_task(struct tcb_s *tcb, void *arg) else #endif { - FAR char **argv; + FAR char **argv = tcb->group->tg_info->argv + 1; size_t npos = 0; - for (argv = tcb->group->tg_info->argv + 1; *argv; argv++) + while (*argv != NULL && npos < sizeof(args)) { - npos += strlcpy(args + npos, *argv, sizeof(args) - npos); - npos += strlcpy(args + npos, " ", sizeof(args) - npos); + npos += snprintf(args + npos, sizeof(args) - npos, "%s ", *argv++); } }