[PATCH] kconfig/lxdialog: replace strcpy with snprintf in print_autowrap

Suchit Karunakaran posted 1 patch 2 months, 1 week ago
scripts/kconfig/lxdialog/util.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH] kconfig/lxdialog: replace strcpy with snprintf in print_autowrap
Posted by Suchit Karunakaran 2 months, 1 week ago
strcpy() does not perform bounds checking and can lead to buffer overflows
if the source string exceeds the destination buffer size. In 
print_autowrap(), replace strcpy() with snprintf() to safely copy the 
prompt string into the fixed-size tempstr buffer.

Signed-off-by: Suchit Karunakaran <suchitkarunakaran@gmail.com>
---
 scripts/kconfig/lxdialog/util.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/scripts/kconfig/lxdialog/util.c b/scripts/kconfig/lxdialog/util.c
index 964139c87fcb..b34000beb294 100644
--- a/scripts/kconfig/lxdialog/util.c
+++ b/scripts/kconfig/lxdialog/util.c
@@ -345,8 +345,7 @@ void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
 	int prompt_len, room, wlen;
 	char tempstr[MAX_LEN + 1], *word, *sp, *sp2, *newline_separator = 0;
 
-	strcpy(tempstr, prompt);
-
+	snprintf(tempstr, sizeof(tempstr), "%s", prompt);
 	prompt_len = strlen(tempstr);
 
 	if (prompt_len <= width - x * 2) {	/* If prompt is short */
-- 
2.50.1
Re: [PATCH] kconfig/lxdialog: replace strcpy with snprintf in print_autowrap
Posted by Masahiro Yamada 2 months, 1 week ago
On Sun, Jul 27, 2025 at 4:43 AM Suchit Karunakaran
<suchitkarunakaran@gmail.com> wrote:
>
> strcpy() does not perform bounds checking and can lead to buffer overflows
> if the source string exceeds the destination buffer size. In
> print_autowrap(), replace strcpy() with snprintf() to safely copy the
> prompt string into the fixed-size tempstr buffer.
>
> Signed-off-by: Suchit Karunakaran <suchitkarunakaran@gmail.com>
> ---

Applied to linux-kbuild.
Thanks.



>  scripts/kconfig/lxdialog/util.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/scripts/kconfig/lxdialog/util.c b/scripts/kconfig/lxdialog/util.c
> index 964139c87fcb..b34000beb294 100644
> --- a/scripts/kconfig/lxdialog/util.c
> +++ b/scripts/kconfig/lxdialog/util.c
> @@ -345,8 +345,7 @@ void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
>         int prompt_len, room, wlen;
>         char tempstr[MAX_LEN + 1], *word, *sp, *sp2, *newline_separator = 0;
>
> -       strcpy(tempstr, prompt);
> -
> +       snprintf(tempstr, sizeof(tempstr), "%s", prompt);
>         prompt_len = strlen(tempstr);
>
>         if (prompt_len <= width - x * 2) {      /* If prompt is short */
> --
> 2.50.1
>


-- 
Best Regards
Masahiro Yamada